Как правильно выбрать имя листа при чтении свойств книги Excel - PullRequest
0 голосов
/ 25 января 2019

Так что я использую метод Opendateabase в Ms Access, чтобы прочитать лист книги 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выбирает правильный.

1 Ответ

0 голосов
/ 25 января 2019

Нашел ответ здесь: Прочитать имена файлов в Excel

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...