今天来整理一下如题的解决方法:
首先,在模块里面声明如下过程:
Public Sub Export(frmName As Form, FlexGridName As String)
Dim xlApp As Object 'Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
Screen.MousePointer = vbHourglass
On Error GoTo Err_Proc
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
'向表中添加数据
Dim intRowIndex As Integer
Dim intColIndex As Integer
With frmName.Controls(FlexGridName) '查找控件
'填充数据到Sheet1
For intRowIndex = 0 To .Rows - 1
For intColIndex = 0 To .Cols - 1
xlSheet.Cells(intRowIndex + 1, intColIndex + 1).Value = "'" & .TextMatrix(intRowIndex, intColIndex)
Next intColIndex
Next intRowIndex
End With
xlApp.Visible = True
Screen.MousePointer = vbDefault
Exit Sub
Err_Proc:
Screen.MousePointer = vbDefault
MsgBox "请确认您的电脑已安装Excel!", vbExclamation, "提示"
End Sub
这样,基本的步骤就做完了,然后就在需要的窗体下的command的click 下执行相应的命令了:
Export Me, "myflexgrid" '引号里面的是自己的flexgrid的名称
这样,就可以导入到excel里面了。
其实还有个这样的问题,导出到Excel里面的数据有和单元格的大小不一致,导致看不见某些数据,虽然这个可以在代码中实现,但是Excel的设置也能解决问题,动动手的事。
在“开始”的“格式”里面,设置自动调整行高和列高就可以了。