在机房收费系统中,需要查询充值金额。选择好日期段,点“查询”即在MSHFlexGrid(在这里,此控件命名为:MSHFGRecharge_Records)控件中显示信息(看下图——图1)。那如何将将显示出的信息导出为Excel呢?
图1
导出方法(大体思路):
1.引用excel对象:MicrosoftExcel 14.0 Ojbect Library
2.创建Application对象:SetxlsApp = CreateObject("Excel.Application")
3.使用Application及其子对象:将mshflexgrid中的记录对应的导出到excel中
4.关闭Application对象:Set xlsApp = nothing
代码部分:
Private Sub cmdTo_Excel_Click() Dim xlsApp As Excel.Application '存储所创建的EXCEL对象 Dim xlsBook As Excel.Workbook '存储所创建的EXCEL工件簿文件 Dim xlsSheet As Excel.Worksheet '存储所设置的活动工作表 Dim intForRow As Integer 'for循环语句中的循环变量,用于控制行 Dim intForCol As Integer 'for循环语句中的循环变量,用于控制列 Set xlsApp =CreateObject("Excel.Application") '创建EXCEL对象 Set xlsBook = xlsApp.Workbooks.Add '新建EXCEL工件簿文件 Set xlsSheet = xlsBook.Worksheets(1) '设置活动工作表 '把表格中的数据写入Excel对象中 For intForRow = 0 To MSHFGRecharge_Records.Rows - 1 For intForCol = 0 To MSHFGRecharge_Records.Cols - 1 If intForCol = 0 Then '第一行为学号,让其以字符形式显示,否则学号中前面的“0”就不显示 xlsSheet.Cells(intForRow + 1,intForCol + 1) = "'" &MSHFGRecharge_Records.TextMatrix(intForRow,intForCol) Else xlsSheet.Cells(intForRow + 1,intForCol + 1) = MSHFGRecharge_Records.TextMatrix(intForRow,intForCol) End If Next intForCol Next intForRow xlsApp.Visible = True '显示Excel Set xlsApp = nothing '交还控制给Excel End Sub
注意:
看第一张图,卡号中有以0开头的。如果直接把表格中的数据导出到Excel中,卡号中的0就不会显示(见图2)。说明,默认导出的为非字符型格式,这就相当于,直接在Excel的单元格中输入数字,默认为数值型。那如何显示0呢?当然得转成字符形式。因此,上方代码,For循环语句中,用一个“If”语句进行选择:只要是首行的数据,就在前面加一个英文的单引号“'”。从而在Excel中,首列单元格中数据转成了字符型,消失的0奇迹般再现(见图3)!
图2
图3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。