DataGrid是用一个数据集关联的 把这个数据集传递给这个函数就行 Public Sub exportExcel(ByRef rs As ADODB.Recordset) Dim myexcel As New Excel.Application Dim mybook As New Excel.Workbook Dim mysheet As New Excel.Worksheet Dim vbook As Variant
Set mybook = myexcel.Workbooks.Add '添加一个新的BOOK 'Set mysheet = mybook.Worksheets.Add '添加一个新的SHEET,如不想添加一个新工作表,你可以把worksheets.add改在worksheets(1),也可以把1改成2、3,意思是工作表2、3 Set mysheet = mybook.Worksheets(1) myexcel.Visible = True
If Not rs Is Nothing Then If rs.RecordCount > 0 Then '继续执行 Else MsgBox "没有数据", 0 + 64 + 65536, "导出到Excell" Exit Sub End If Else MsgBox "没有数据", 0 + 64 + 65536, "导出到Excell" Exit Sub End If
Public Sub exportExcel(ByRef rs As ADODB.Recordset)
Dim myexcel As New Excel.Application
Dim mybook As New Excel.Workbook
Dim mysheet As New Excel.Worksheet
Dim vbook As Variant
Set mybook = myexcel.Workbooks.Add '添加一个新的BOOK
'Set mysheet = mybook.Worksheets.Add '添加一个新的SHEET,如不想添加一个新工作表,你可以把worksheets.add改在worksheets(1),也可以把1改成2、3,意思是工作表2、3
Set mysheet = mybook.Worksheets(1)
myexcel.Visible = True
If Not rs Is Nothing Then
If rs.RecordCount > 0 Then
'继续执行
Else
MsgBox "没有数据", 0 + 64 + 65536, "导出到Excell"
Exit Sub
End If
Else
MsgBox "没有数据", 0 + 64 + 65536, "导出到Excell"
Exit Sub
End If
On Error GoTo err02
vbook = rs.Book '记录当前数据集位置
rs.MoveFirst
'mysheet.Cells.CopyFROMRecordset rs
For i = 0 To rs.Fields.Count - 1
mysheet.Range(Chr(65 + i) & "1").Value = rs.Fields(i).Name
mysheet.Range(Chr(65 + i) & "1").Interior.ColorIndex = 34
mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeTop).LineStyle = xlContinuous
mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeBottom).LineStyle = xlContinuous
mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeRight).LineStyle = xlContinuous
mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeLeft).LineStyle = xlContinuous
Next i
DoEvents
mysheet.Range("A2").CopyFromRecordset rs
rs.MoveFirst
err02:
Exit Sub
End Sub
mysheet.Range("A2").CopyFromRecordset rs
我写的这些代码主要是完善Excell