代码之家  ›  专栏  ›  技术社区  ›  waanders

从Access读取Excel工作簿

  •  0
  • waanders  · 技术社区  · 14 年前

    我希望我的Access(2007)应用程序读取给定Excel(2007)工作簿的不同工作表中的信息。在Internet上,我看到了很多使用DAO/ADO/Excel对象模型/VBA的例子,我认为哪种方法最好让人困惑。

    现在我这样做:

    Dim ExcelApp As Excel.Application
    Dim ExcelWorkbook As Excel.Workbook
    Dim ExcelWorkSheet As Excel.Worksheet
    
    Set ExcelApp = CreateObject("Excel.Application")
    Set ExcelWorkbook = ExcelApp.Workbooks.Open("C:\Temp\test.xls")
    
    For Each ExcelWorkSheet In ExcelWorkbook.Worksheets
        MsgBox ExcelWorkSheet.Name
    Next
    
    ExcelWorkbook.Close (False)
    ExcelApp.Quit
    Set ExcelWorkbook = Nothing
    Set ExcelApp = Nothing
    

    (作为示例,我将遍历工作表并打印它们的名称)

    这是正确的方法吗?这是最有效的方法吗?(如果有“最有效的方法”)。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Fionnuala    14 年前

    什么是最好的在很大程度上取决于你想做什么。如果Excel中的数据是结构化的,并且您希望导入或操作,则通常最好使用带In关键字的查询,或者更简单地说,将Excel链接到指定的范围、范围或完整工作表。

    通过VBA链接
    http://msdn.microsoft.com/en-us/library/aa141565(office.10).aspx

    可以使用ADO模式获取工作表和命名范围的完整列表。

    查询
    http://stackoverflow.com/questions/2689087/where in query with two recordset in access vba/2689151 2689151

    如果您希望更新say,SQL Server from Excel via Access,ADO可能是一个不错的选择。

    阿多
    http://stackoverflow.com/questions/2086234/query excel worksheet in ms access vba using adodb recordset/2086626 2086626

    自动化,如您的问题所示,通常只有在您希望对单个单元格和小范围进行大量格式化和/或更新时才有用。