У меня есть большое количество PDF-файлов, из которых я хотел бы скопировать все данные в файл в столбец в электронной таблице.VBA Копирование данных из pdf
Вот код, который был у меня. Все, что он делает, это открыть pdf, использовать control-a, затем control-c для копирования, затем активирует рабочую книгу, находит открытый столбец и вставляет данные с помощью элемента управления-v Sendkey. Он отлично работает, но он только вставляет последние данные из самого последнего файла (у меня есть диапазон с именами путей, которые он открывает, и копирует данные из всех, но только фактически вставляет последний).
Sub StartAdobe1()
Dim AdobeApp As String
Dim AdobeFile As String
Dim StartAdobe
Dim fname As Variant
Dim iRow As Integer
Dim Filename As String
For Each fname In Range("path")
AdobeApp = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
StartAdobe = Shell("" & AdobeApp & " " & fname & "", 1)
Application.Wait Now + TimeValue("00:00:01")
SendKeys "^a", True
Application.Wait Now + TimeValue("00:00:01")
SendKeys "^c"
Application.Wait Now + TimeValue("00:00:01")
SendKeys ("%{F4}")
Windows("transfer (Autosaved).xlsm").Activate
Worksheets("new").Activate
ActiveSheet.Range("A1").Select
Selection.End(xlToRight).Offset(0, 1).Select
SendKeys "^v"
Application.Wait Now + TimeValue("00:00:2")
Next fname
У вас на компьютере установлен Acrobat (не Reader). Если это так, вы можете использовать объектную модель Acrobat для копирования данных из PDF в Excel без использования 'SendKeys'. Дайте мне знать, если вы это сделаете, я отправлю ответ с образцом кода – Jeanno
да у меня есть акробат, а также – Sam