阅读Excel工作簿的属性时如何选择正确的工作表名称

时间:2019-01-25 09:19:19

标签: excel access-vba

因此,我在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选择正确的工作表。 / p>

1 个答案:

答案 0 :(得分:0)

在这里找到答案: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