【问题标题】:Merge Excel worksheets into one将 Excel 工作表合并为一个
【发布时间】:2013-01-02 21:28:36
【问题描述】:

我在一个工作簿中有数百个不同的工作表,我需要将每个工作表中的所有数据附加(而不是求和)到其他工作表中,并将它们全部放在一个巨大的主工作表中。每个工作表的所有列名都完全相同。

我的最终目标是从主工作表中获取所有数据并将其放入 Access 数据库中,因此如果有人还知道一种简单的方法,可以一次从数百个 Excel 工作表中获取数据并将其放入一个很棒的数据库。

似乎最好的方法是使用某种 VBScript,但我对此非常陌生。

【问题讨论】:

    标签: excel ms-access vbscript worksheet-function


    【解决方案1】:

    您可以比 VBScript 更简单地使用 VBA:

       'Requires reference to the Microsoft Excel x.x Object Library
    
       Dim strFileName As String
       Dim objXL As New Excel.Application
       Dim wkb As Excel.Workbook
       Dim wks As Object
    
       'objXL.Visible = True
    
       strFileName = "C:\Docs\LTD.xls"
       Set wkb = objXL.Workbooks.Open(strFileName)
    
       For Each wks In wkb.Worksheets
          DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
               "TableName", strFileName, True, wks.Name & "$"
       Next
    
       'Tidy up
       wkb.Close
       Set wkb = Nothing
       objXL.Quit
       Set objXL = Nothing
    

    传输电子表格:http://msdn.microsoft.com/en-us/library/office/bb214134(v=office.12).aspx

    请注意,您可能会遇到长列名、保留字符或列名中的名称、日期数据类型、列中混合数据和列中长数据的问题。

    【讨论】:

    • 好的,这里有几个问题。我把这段代码放在哪里?我注意到我可以右键单击工作表并单击“查看代码”并搞砸它,否则我有点不知道应该在哪里存储和运行你给我的代码。
    • 好的。那么我应该在哪里存储和运行此代码以使用所需信息填充 Access 数据库?
    • 您可以在 MS Access office.microsoft.com/en-ie/access-help/… 中创建一个模块并添加一个可以粘贴上述代码的过程。然后,您可以对其进行编辑以适合您的设置。您可能会遇到转换问题。
    • 好的,我创建了一个模块并添加了一个过程。我如何实际运行这个程序?
    • 您可以点击“Sub”并从工具栏中选择“运行”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 2015-09-07
    • 2021-10-13
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多