把MSFLEXGRID里的数据导出到指定的EXCEL里

yfxpw 2010-11-28 02:52:14
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
Set xlsApp = New Excel.Application
Set xlsBook = xlsApp.Workbooks.Add
Set xlsSheet = xlsBook.Worksheets(1)

Dim i As Integer
Dim j As Integer
For i = 0 To MSFlexGrid1.Rows - 1
For j = 0 To MSFlexGrid1.Cols - 1
xlsSheet.Cells(i + 2, j + 1) = MSFlexGrid1.TextMatrix(i, j)
Next
Next
xlsApp.Visible = True
Set xlsApp = Nothing
以上代码把MSFLEXGRID里的数据导出到新增的EXCEL里,而我想导到同一目录下的名为99.xls里的SHEET1里,在看不到EXCEL表情况下我还要操作此表,如合并等,如何写?我是新手。
...全文
141 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
booksoon 2010-11-29
Set xlsBook = xlsApp.Workbooks.Add
--->
Set xlsBook = xlsApp.Workbooks.open("99.xlx")
回复
dbcontrols 2010-11-29
先从对象浏览器里找或搜
[Quote=引用 9 楼 yfxpw 的回复:]
.Cells(Cells(1, 1), Cells(1, 10)).ClearContents
没有这个属性,见鬼呀
[/Quote]
回复
yfxpw 2010-11-29
.Cells(Cells(1, 1), Cells(1, 10)).ClearContents
没有这个属性,见鬼呀
回复
dbcontrols 2010-11-29
可以录制宏,然后修改调用

[Quote=引用 6 楼 yfxpw 的回复:]
xlsApp.DisplayAlerts = False 可以用,可是我想操作它时却不能了,比如我在把MSFlexGrid1导出到此工作表时,先清空A1:J6000的内容,如何操作?我是With ActiveSheet
.Cells(Cells(1, 1), Cells(1, 10)).ClearContents
End With
出错?请指导
[/Quote]
回复
yfxpw 2010-11-28
还有就是导入完后,不能手工打开此名为99的工作簿。
回复
yfxpw 2010-11-28
xlsApp.DisplayAlerts = False 可以用,可是我想操作它时却不能了,比如我在把MSFlexGrid1导出到此工作表时,先清空A1:J6000的内容,如何操作?我是With ActiveSheet
.Cells(Cells(1, 1), Cells(1, 10)).ClearContents
End With
出错?请指导
回复
yfxpw 2010-11-28
我希望工作簿退出时保存但不显示警告信息,为什么xlsApp.Close True是错的?
回复
xiaoohoo 2010-11-28
[Quote=引用楼主 yfxpw 的回复:]
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
Set xlsApp = New Excel.Application
Set xlsBook = xlsApp.Workbooks.Add
……
[/Quote]

从MSFlexGrid1导出到xls的楼主已经知道了!
默认就是SHEET1

接下来就是写出文件99.xls:
需要使用xlsBook.Saveas(文件路径+文件名),保存前建议查看文件是否存在,存在是否覆盖等。


合并单元格建议使用EXCEL的宏录制。
然后你再看里面的代码,这种方法学习比较好!

单元格的合并命令这样: Range("D9:E14").Merge

回复
dbcontrols 2010-11-28
有在流毒了,有出来拿Object祸害青少年了

[Quote=引用 2 楼 cbm666 的回复:]
设计时期 除非自创EXCELL表格, 你可以看不到 , 而套用现成的99.xls 你必须先知道各个cell的位置内容, 程序设计好后 在运行时可以看不到EXCEL表 要Range合并等,直接写代码即可.
例如:
'xlsApp.RANGE("A1:E1").Select
'xlsApp.Selection.Copy
'xlsApp.Paste

Dim xlsApp As Object……
[/Quote]
回复
cbm6666 2010-11-28
设计时期 除非自创EXCELL表格, 你可以看不到 , 而套用现成的99.xls 你必须先知道各个cell的位置内容, 程序设计好后 在运行时可以看不到EXCEL表 要Range合并等,直接写代码即可.
例如:
'xlsApp.RANGE("A1:E1").Select
'xlsApp.Selection.Copy
'xlsApp.Paste

Dim xlsApp As Object
Dim xlsBook As Object
Dim Fname$, i&, j&
Private Sub Command1_Click()
'xlsApp.DisplayAlerts = True '关闭时提示保存
Fname = App.Path & "\99.xls" '自己再判断\
Set xlsApp = CreateObject("Excel.Application") '创建excel对象
xlsApp.Visible = True '对象可见
Set xlsBook = xlsApp.Workbooks.Open(Fname) '打开文件
If Val(xlsApp.Application.Version) >= 8 Then
Set xlsBook = xlsApp.ActiveSheet
Else
Set xlsBook = xlsApp
End If
xlsApp.Sheets("Sheet1").Select
For i = 0 To MSFlexGrid1.Rows - 1
For j = 0 To MSFlexGrid1.Cols - 1
xlsApp.Cells(i + 2, j + 1) = MSFlexGrid1.TextMatrix(i, j)
Next
Next
xlsBook.Saveas (Fname)
xlsApp.Quit
Set xlsBook = Nothing
Set xlsApp = Nothing
End Sub
回复
dbcontrols 2010-11-28
这代码看着面熟
需求描述的不是很清楚
到底要啥没说清楚
回复
相关推荐
发帖
控件
创建于2007-09-28

1425

社区成员

VB 控件
申请成为版主
帖子事件
创建了帖子
2010-11-28 02:52
社区公告
暂无公告