概述
机房收费系统中需要导出Excel表的地方还是很多的,刚开始,我始终无法下手。当我把所有的代码都实现了不是报错就是没有任何的反应。我只有求教网络这位大神才得知自己的问题所在,下面我就分享给大家。
问题
我在把代码敲完后,总是提示:“编译错误:用户定义类型未定义”,经过几天的查找始终没有找到问题的所在,很是让我头疼。然后上网查询后,确实也有很多的人有类似的情况,然后告诉我是因为没有引用“Microsoft Excel 15.0 Object Library”,当时很是兴奋,可是当我自己引用的时候发现,我的列表里没有这一项,一下子就傻眼了。然后继续查找,才得到了真经,问题也才能迎刃而解。现在我们就来学习下这样做出这个功能。
- 第一步:在VB开发环境中找到“工程”→“引用”中添加引用:
- 第二步:当在第一步情况下找不到的,操作步骤如下:
1. 先在自己的电脑系统中找到Excel.exe应用程序的具体位置,如下图(我的就是这样的)
2. 然后在引用中浏览,找到上述路径,文件类型选择“可执行文件”,然后就可以选择Excel了,这样就可以加载成功了。
重点代码展示
Private Sub cmdExport_Click()
Dim ExcelApp As Excel.Application
Dim ExcelBook As Excel.Workbook
Dim ExcelSheet As Excel.Worksheet
Dim ExcelRange As Excel.Range
Dim i As Integer '定义横坐标
Dim j As Integer '定义纵坐标
Set ExcelApp = CreateObject("Excel.application") '创建Excel应用程序对象
Set ExcelBook = ExcelApp.Workbooks.Add '创建一个工作簿
Set ExcelSheet = ExcelBook.Worksheets(1) '创建一个工作表
DoEvents '转让控制权,以便让操作系统处理其它的事件
With myflexgrid '将FlexGrid控件中内容导入Excel表格中
For i = 0 To .Rows - 1 '遍历所有的行
For j = 0 To .Cols - 1 '遍历所有的列
DoEvents '转让控制权,以便让操作系统处理其它的事件
ExcelApp.ActiveSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j) '创建新的单元格,并添加FlexGrid中的内容
Next j
Next i
End With
ExcelApp.ActiveWorkbook.SaveAs App.Path & "\学生查询.xls" '表格保存路径
ExcelApp.ActiveWorkbook.Saved = True '保存表格
MsgBox "导出完成!", vbOKOnly + vbExclamation, "提示" '保存成功提示信息
ExcelApp.Visible = True '显示表格
End Sub
总结
每当遇到问题的时候不要着急,慢慢的一点点的探索,过程虽然有点难熬,可是当问题解决的时候,自己的收获也是满满的,多总结,多站在巨人的肩膀上。