[求助] 帮忙看一段Datagrid导出到Excel的代码
本帖最后由 iamggggs 于 2012-04-01 16:01:57 编辑
Private Sub out_Click()
Dim i, j, k As Integer
Dim xlapp As Variant
Dim xlBook As Variant
Dim xlSHEET As Variant
AD_report.Refresh
Set xlapp = CreateObject("excel.application")
Set xlBook = xlapp.Workbooks.Add
Set xlSHEET = xlBook.Worksheets(1)
xlapp.Visible = True
On Error Resume Next
If Err.Number <> 0 Then Set xlapp = CreateObject("Excel.Application")
Set xlBook = xlapp.Workbooks.Add
Set xlSHEET = xlBook.ActiveSheet
For k = 1 To DataGrid1.Columns.Count
xlSHEET.Cells(2, k) = DataGrid1.Columns(k - 1).Caption
Next k
For i = 2 To AD_report.Recordset.RecordCount + 1
For j = 0 To DataGrid1.Columns.Count
xlSHEET.Cells(i + 1, j + 1) = "'" & AD_report.Recordset(j) '
Next j
AD_report.Recordset.MoveNext
Next i
xlSHEET.Range(Cells(1, 1), Cells(1, DataGrid1.Columns.Count)).Merge '第一行各列合并
xlSHEET.Cells(1, 1) = DataGrid1.Caption
xlSHEET.Cells.HorizontalAlignment = xlCenter '居中显示
xlSHEET.Cells.VerticalAlignment = xlCenter '居中显示
xlSHEET.Range(xlSHEET.Cells(1, 1), xlSHEET.Cells(1, DataGrid1.Columns.Count)).Interior.Color = RGB(211, 211, 211) '标题栏底色浅灰
xlSHEET.Cells.EntireColumn.AutoFit ' 自适应列宽
xlSHEET.Range(xlSHEET.Cells(2, 1), xlSHEET.Cells(i, DataGrid1.Columns.Count)).Borders.LineStyle = xlContinuous '表格画边框
'释放excel相应变量
Set xlSHEET = Nothing
Set xlBook = Nothing
Set xlapp = Nothing
AD_report.Refresh
End Sub
xlSHEET.Range(Cells(1, 1), Cells(1, DataGrid1.Columns.Count)).Merge