【问题标题】:How to pick the right worksheet name when reading properties of an excel workbook读取excel工作簿属性时如何选择正确的工作表名称
【发布时间】:2019-01-25 09:19:18
【问题描述】:

所以我在 Ms Access 中使用 Opendateabase 方法来读取 Excel 工作簿的工作表。为什么我在打开文件时只能看到一个 Excel 工作表,却得到多个工作表条目。

所以系统过去只导入 Excel 工作簿而不检查列名,这意味着在等待 5-10 分钟后,如果用户没有正确命名他的列,程序会崩溃。我希望它在导入之前检查列名,这意味着 VBA 需要知道其导入的工作表的名称。

Set db = OpenDatabase(Me.Text2.Value, True, False, "Excel 8.0")
For Each tbl In db.TableDefs
MsgBox tbl.Name 'Would be where the sheet name is picked
Next
db.Close

Set rstbl = CurrentDb.OpenRecordset("SELECT * FROM ImportColumnNames")
S = "SELECT * FROM [Excel 8.0;HDR=Yes;Database=" _
& Me.Text2 & "].[" & SheetName & "$] WHERE False;"

现在看到该文件只有一个名为 CLENAS 的工作表,我期待 1 个答案,但是我得到了 Sheet1$、CLENAS、CLENAS$ 现在我知道它应该是 CLENAS 但我如何确保 VBA 选择正确的。

【问题讨论】:

    标签: excel vba ms-access


    【解决方案1】:

    在这里找到答案:Read Excel file sheet names

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多