经常听别人说导出EXCEL等,现在轮到自己做了,开始做的时候还是没有点思路,等做完了,虽然是小小的一个小功能,还是很高兴的。分享一下吧。
机房收费系统中,好几个窗体都用到了导出为EXCEL,为了方便在模块中定义了一个函数,那个窗体需要就去调用,避免代码多而杂。
'自定义函数
'*************************************************************************
'**函 数 名:toexcel
'**输 入:Grid1(MSHFlexGrid) -
'**输 出:无
'**功能描述:数据导出到Excel表
'**作 者:刘腾腾
'**日 期:2012-09-17 19:54:27
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Public Sub toexcel(Grid1 As MSHFlexGrid)
On Error GoTo aa: '错误处理
Dim i, j As Integer
Dim ex As Object
Dim exwbook As Object
Dim exsheet As Object
Set ex = CreateObject("Excel.Application") '创建excel对象
Set exwbook = ex.Workbooks.Add '打开文件
ex.Visible = True '对象可见
Set exsheet = exwbook.Worksheets("sheet1") '设定工作表
For i = 1 To Grid1.Rows '在表中显示所有的数据
For j = 1 To Grid1.Cols
exsheet.Cells(i, j) = Grid1.TextMatrix(i - 1, j - 1)
Next j
Next i
aa:
Exit Sub
End Sub
在窗体中调用:
Private Sub cmdOutput_Click() '输出
'如果行数小于2,就没有数据,如果大于2,就调用函数输出导出excel表
If Rechargeflexgrid.Rows < 2 Then
MsgBox "没有数据!", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
Call toexcel(Rechargeflexgrid) '调用模块中定义的函数
End If
End Sub
出现的结果为:
只要努力,坚持,一切困难都是可以克服的。