PDF Path — это путь к PDF-файлу, удаленный из соображений конфиденциальности — код работает с этим на месте.
У меня возникли проблемы со вставкой переменной в последнюю строку этого кода VBA. По сути, мне нужно получить определенные таблицы из разных PDF-файлов. На каждой странице этих PDF-файлов есть две таблицы, и мне всегда нужна вторая, а не первая. Пользователь вводит количество страниц в PDF-файле, и этот цикл запускается и запрашивает необходимые таблицы.
Где бы ни было написано Table002, мне нужно, чтобы это была переменная Table_No, чтобы при обратном проходе цикла она захватывала Table004, затем Table006 и так далее, но я продолжаю сталкиваться с разными ошибками. Этот код работает, как и ожидалось, для первого цикла, моя проблема в том, чтобы заставить его захватить новую таблицу, а не ту, которую он уже захватил. Кто-нибудь может помочь? Должна ли моя переменная иметь другой тип данных?
Dim Table_Max As Integer
Dim Ack_Pages As Integer
Dim Table_No As String
Ack_Pages = InputBox("Enter the number of pages on the acknowledgement file.")
Table_Max = Ack_Pages * 2
For i = 2 To Table_Max Step 2
Table_No = "Table00" & i
ActiveWorkbook.Queries.Add Name:=Table_No, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Pdf.Tables(File.Contents(""" & PDFPath & """), [Implementation = ""1.3""])," & Chr(13) & "" & Chr(10) & " Table002 = Source{[Id = ""Table002""]}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Table002,{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""Column5"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
Id = "Tablexxx"
следует изменить, как показано нижеActiveWorkbook.Queries.Add Name:=Table_No, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Pdf.Tables(File.Contents(""" & PDFPath & """), [Implementation = ""1.3""])," & Chr(13) & "" & Chr(10) & " Table002 = Source{[Id = """ & Table_No & """]}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Table002,{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""Column5"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
Большое спасибо!! Это сработало отлично. Знаете ли вы, как очистить существующие запросы в VBA?
Что означает clear queries
?
Table_No = "Table" & Format(i, "000")
если >9 столов?