【问题标题】:Read Excel file sheet names读取 Excel 文件工作表名称
【发布时间】:2013-08-27 02:06:03
【问题描述】:

我有一个将数据从我的 Access 表传输到 Excel 文件的导出过程。有几次我遇到了这个过程没有在 Excel 中生成一张或多张工作表(1 张工作表 = 1 个表格)的问题。因此,当传输完成后,我希望 Access 检查所有工作表是否都位于 Excel 文件中。我已经完成了大部分检查过程,我现在需要的只是一种将 Excel 文件中的工作表名称“读取”到表格中的方法。如何读取工作表名称(而不是数据)?

【问题讨论】:

  • 发布您正在使用的导出到 excel 的代码。如果您有工作簿对象,则可以遍历 Worksheets 集合并检查工作表的名称。
  • Worksheets(1).Name ?如果这没有回答,那么您需要发布一些相关代码。

标签: excel ms-access vba ms-access-2010


【解决方案1】:

通过 Access,您可以自动化 Excel、打开工作簿文件并从 Worksheets 集合中读取工作表名称。

此示例使用后期绑定。如果您更喜欢早期绑定,请添加对 Microsoft Excel [版本] 对象库的引用 并启用“早期”行而不是“晚期”行。

为过程提供工作簿文件的完整路径作为其 pWorkBook 参数。

Public Sub List_worksheets(ByVal pWorkBook As String)
    'Dim objExc As Excel.Application ' early
    'Dim objWbk As Excel.Workbook ' early
    'Dim objWsh As Excel.Worksheet ' early
    Dim objExc As Object ' late
    Dim objWbk As Object ' late
    Dim objWsh As Object ' late

    'Set objExc = New Excel.Application ' early
    Set objExc = CreateObject("Excel.Application") ' late
    Set objWbk = objExc.Workbooks.Open(pWorkBook)
    For Each objWsh In objWbk.Worksheets
        Debug.Print objWsh.Name
    Next
    Set objWsh = Nothing
    objWbk.Close
    Set objWbk = Nothing
    objExc.Quit
    Set objExc = Nothing
End Sub

【讨论】:

    【解决方案2】:

    在 Access 2007 中,您可以使用OpenDatabase 方法来执行此操作:

    Private Sub Command1_Click()
    Set db = OpenDatabase("c:/123.xls", True, False, "Excel 5.0")
        For Each tbl In db.TableDefs
            MsgBox tbl.Name
        Next
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多