Всем привет. Пробовал макрорекодером код записать - ничего из этого не вышло. Нужно по значению ячейки открыть нужный файл в ПДФ и найти в файле это значение. Для простоты считаем, что файл ПДФ один и тот же. Можно конечно гиперссылок наделать на открытие нужного файла ПДФ, но потом все равно нужную запись в файле ПДФ искать придется через контл+Ф Пример не могу приложить, потому как ПДФ весит много
Всем привет. Пробовал макрорекодером код записать - ничего из этого не вышло. Нужно по значению ячейки открыть нужный файл в ПДФ и найти в файле это значение. Для простоты считаем, что файл ПДФ один и тот же. Можно конечно гиперссылок наделать на открытие нужного файла ПДФ, но потом все равно нужную запись в файле ПДФ искать придется через контл+Ф Пример не могу приложить, потому как ПДФ весит многоovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
ovechkin1973, Что значит открыть? Можно по ссылке , при условии открытия файла в браузере (WEB) перейти на определенную страницу, но не запустить поиск. Если будет программа которая будет иметь API , то и поиск можно задействовать. А так - вариантов скорее всего нет.
ovechkin1973, Что значит открыть? Можно по ссылке , при условии открытия файла в браузере (WEB) перейти на определенную страницу, но не запустить поиск. Если будет программа которая будет иметь API , то и поиск можно задействовать. А так - вариантов скорее всего нет.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Option Explicit #If VBA7 Then Private Declare PtrSafe Function GetForegroundWindow _ Lib "User32" () _ As LongPtr Private Declare PtrSafe Function GetClassName _ Lib "User32" _ Alias "GetClassNameA" ( _ ByVal hWnd As LongPtr, _ ByVal lpClassName$, _ ByVal nMaxCount& _ ) _ As Long #Else Private Declare Function GetForegroundWindow _ Lib "User32" () _ As Long Private Declare Function GetClassName _ Lib "User32" _ Alias "GetClassNameA" ( _ ByVal hWnd&, _ ByVal lpClassName$, _ ByVal nMaxCount& _ ) _ As Long #End If #If VBA7 Then Function ClassName$(ByVal hWnd As LongPtr) #Else Function ClassName$(ByVal hWnd&) #End If Dim windowClass As String Dim retVal As Long windowClass = Space(255) retVal = GetClassName(hWnd, windowClass, 255) ClassName = Left$(windowClass, retVal) End Function Sub FindText(sFilePath$, sText$, Optional timeout = 5) Dim oFile As Object Set oFile = CreateObject("shell.application").Namespace(0).parsename(sFilePath) If oFile Is Nothing Then Err.Raise 53, , "Файл не найден" End If With oFile
.invokeverbex ("open") Dim t#: t = Timer Do While ClassName(GetForegroundWindow) <> "AcrobatSDIWindow" DoEvents If Timer - t > timeout Then MsgBox "TimeOut": Exit Sub End If Loop
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .settext sText$ .putinclipboard End With
Option Explicit #If VBA7 Then Private Declare PtrSafe Function GetForegroundWindow _ Lib "User32" () _ As LongPtr Private Declare PtrSafe Function GetClassName _ Lib "User32" _ Alias "GetClassNameA" ( _ ByVal hWnd As LongPtr, _ ByVal lpClassName$, _ ByVal nMaxCount& _ ) _ As Long #Else Private Declare Function GetForegroundWindow _ Lib "User32" () _ As Long Private Declare Function GetClassName _ Lib "User32" _ Alias "GetClassNameA" ( _ ByVal hWnd&, _ ByVal lpClassName$, _ ByVal nMaxCount& _ ) _ As Long #End If #If VBA7 Then Function ClassName$(ByVal hWnd As LongPtr) #Else Function ClassName$(ByVal hWnd&) #End If Dim windowClass As String Dim retVal As Long windowClass = Space(255) retVal = GetClassName(hWnd, windowClass, 255) ClassName = Left$(windowClass, retVal) End Function Sub FindText(sFilePath$, sText$, Optional timeout = 5) Dim oFile As Object Set oFile = CreateObject("shell.application").Namespace(0).parsename(sFilePath) If oFile Is Nothing Then Err.Raise 53, , "Файл не найден" End If With oFile
.invokeverbex ("open") Dim t#: t = Timer Do While ClassName(GetForegroundWindow) <> "AcrobatSDIWindow" DoEvents If Timer - t > timeout Then MsgBox "TimeOut": Exit Sub End If Loop
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .settext sText$ .putinclipboard End With