前言:i+1的学习
收取金额查询主要有两部分:查询和导出Excel表。
查询还OK。之前做学生时就有过很多次查询,基本大同小异。
本窗体难点在于如何导出Excel表。这就是需要我们学习和掌握的+1部分了。刚开始接触时,我还挺懵的,不知道如何下手,不过查查百度、站在“巨人”的肩膀后,思路渐渐也就清晰了不少。这也正应了编程的一句诗“山重水复疑无路,柳暗花明又一村。”
导出Excel表,首先需要引用EXcel。遗憾的是,找了半天也没找到。这就让我很疑惑呀,明明电脑上有Excel呀,为什么找不到呢?后来我的方法如下:
注意:文件类型为可执行文件。
好了,成功引用后,就需要开始写代码了。
Public Sub ExportExcel(ByVal formname As Form, myFlexGrid As MSHFlexGrid)'(myFlexGrid As MSFlexGrid)
'定义循环变量
Dim i As Integer
Dim j As Integer
'定义表,工作簿,工作表
Dim Excelapp As Excel.Application
Dim Excelbook As Excel.Workbook
Dim Excelsheet As Excel.Worksheet
Dim ExcelRange As Excel.Range '显示表,工作簿,工作表
Set Excelapp = CreateObject("Excel.application") '建立一张表
Set Excelbook = Excelapp.Workbooks.Add '添加新的工作簿
Set Excelsheet = Excelbook.Worksheets(1) '建立工作表
DoEvents '空值验证
If myFlexGrid.Rows - 1 <= 0 Then
MsgBox "无数据,请勿导出!", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
'将MSHFlexGrid中的内容显示到表格中
With myFlexGrid
For i = 0 To .Rows - 1 '行循环
For j = 0 To .Cols - 1 '列循环
DoEvents
Excelapp.ActiveSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j)
Next j
Next i
End With
Excelapp.ActiveWorkbook.SaveAs App.Path & "\导出 Excel.xls"
Excelapp.ActiveWorkbook.Saved = True '保存表格
Excelapp.Quit '退出表
MsgBox "导出完成!", vbInformation, "提示"
End If
End Sub
到此,学习并未结束。因为这次机房中有多次要到出Excel表。小技巧:将上述代码写在模块中,使用时,只需在相应的窗体中调用即可。