我们在机房收费系统中,很多窗体都用到了导出Excel表格,现在我来说说我遇到的问题。
1:无引用,也就是vb中没有Microsoft Excel 15.0 object library
这时候我们就要想我们有office吗?假如没有那就快点安装一个吧。vb是只和微软出来的office交互的,和wps是不交互的。
假如你安装的是2013版的office,千万记得激活,要不然后面的问题真的是不断啊。而且要卸载wps,假如不卸载应该到时候运行的时候就会提示这个错误:
(1)由于部件忙,不能完成该操作,选择切换到“按钮激活部件”
(2)
所以果断卸载比较好。。。。。
正确安装好了office后,再看一下工程里面的引用,看看是不是有Microsoft Excel 15.0 object library,假如没有的话,直接点击右面的“浏览”,接下来就会弹出下面的窗体了。
接下来就是选择它的范围啦,我们要查找的是实体,不是快键方式,我们要去安装它的位置去找,我是在E盘安装的,所以就在E盘里面找到的,找起来比较麻烦,大家找的时候耐心点滴。
2:代码
代码是在网上搜的,搜了好几篇,自己理解一下,然后敲上
无论是那一种方法,都需要添加引用的,所以先把勾给画上啊。
(1)
Private Sub CmdExcel_Click()
Dim app As Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
Set app = New Excel.Application
Set book = app.Workbooks.Add
Set sheet = book.Worksheets.Add
Dim row As Single
Dim col As Single
With MyFlexGrid
For row = 0 To .Rows - 1
For col = 0 To .col - 1
sheet.Cells(row + 1, col + 1).Value = .TextMatrix(row, col)
Next col
Next row
End With
app.Visible = True
Exit Sub
End Sub
(2)在我们的机房收费系统文件夹下(也就是根目录下)建立一个空白的Excel表格,接下来就是这些代码啦
<pre name="code" class="vb">Dim i As Integer
Dim j As Integer
MyFlexGrid.Redraw = False '关闭表格重画,加快运行速度
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
'打开已经存在的EXCEL工件簿文件
Set xlBook = xlApp.Workbooks.Open(App.Path & "\学生上机记录.xls")
xlApp.Visible = True '设置EXCEL对象可见
Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
For i = 0 To MyFlexGrid.Rows - 1 '行循环
For j = 0 To myFlexGrid.Cols - 1 '列循环
MyFlexGrid.Row = i
MyFlexGrid.Col = j
'保存到EXCEL
xlBook.worksheets("sheet1").cells(i+1=MyFlexGrid.text)
next j
next i
MyFlexGrid.Redraw=True
其实这些方法几乎都是差不多的,都是声明变量,然后行列循环啦,这种没有用到过的很高大上东东,一搜就全都出来啦!同时向大家推荐如何导出Excel,这里面介绍的也是很详细的。
对于机房收费系统,我还是有一个很大的疑问的,那就是窗体总是不翼而飞,一些窗体先保存,然后运行,然后退出程序关机之后,第二天打开电脑,窗体就没有了,也许我是好欺负吧,第二天再重新敲!但是该怎么解决吗?难道解决的方案就是我再重新装一个vb吗?求解啊