【发布时间】:2020-06-17 07:33:28
【问题描述】:
我正在使用 Access VBA 为同事将表导出到 Excel,如果可以根据第 1 列中的值并将输出拆分为同一工作簿中的不同工作表并以第 1 列中的值命名,那将非常方便。
这是我目前用于将整个表格导出到 Excel 中的新工作簿的代码:
Private Sub export_Click()
If IsNull(DLookup("Name", "MSysObjects", "Name='tbl_found_playingtimes'")) Then
MsgBox ("No records to export.")
Else
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim rs1 As DAO.Recordset
DoCmd.Hourglass (True)
Set rs1 = CurrentDb.OpenRecordset("tbl_found_playingtimes")
Set xlApp = Excel.Application
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Add
Set xlsheet = xlBook.Worksheets(1)
With xlsheet
.Name = "test"
.Columns("I").NumberFormat = "0,00"
.Range("A2").CopyFromRecordset rs1
For cols = 0 To rs1.Fields.Count - 1
.Cells(1, cols + 1).Value = rs1.Fields(cols).Name
Next
End With
End If
SubExit:
On Error Resume Next
DoCmd.Hourglass False
xlApp.Visible = True
Exit Sub
End Sub
这很好用,除了一些障碍 - 一个数字列没有被导出 - 但我主要关心的是我是否可以将它拆分。每个标签编号将位于以标签编号命名的自己的工作表中。
【问题讨论】:
-
有几种方法可以解决 - 带回多少行数据?
-
您还需要
Newexcel 应用程序。Set xlApp = New Excel.Application. -
@KostasK。 - 嗯,但我的代码可以正常输出到单张纸中。 “新”带来什么好处?
-
@jamheadart - 这是可变的。该数据库用于从大型数据库中搜索一些相关数据并导出到 Excel,因此它可以是从单行到数千行的任何数据。
-
搜索对象实例化。它有效并不一定意味着它是正确的。
标签: excel vba ms-access export-to-excel spreadsheet