将Excel工作表合并为一个

时间:2013-01-02 21:28:36

标签: excel ms-access vbscript worksheet-function

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

我的最终目标是从主工作表中获取所有数据并将其放入Access数据库,因此,如果有人也知道一次轻松地从数百个excel工作表中获取数据并将其放入一个很棒的数据库。

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

1 个答案:

答案 0 :(得分: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

Transferspreadsheet:http://msdn.microsoft.com/en-us/library/office/bb214134(v=office.12).aspx

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