Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск из Excel в PDF - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск из Excel в PDF (Макросы/Sub)
Поиск из Excel в PDF
ovechkin1973 Дата: Воскресенье, 01.03.2020, 16:37 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 422
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Всем привет. Пробовал макрорекодером код записать - ничего из этого не вышло. Нужно по значению ячейки открыть нужный файл в ПДФ и найти в файле это значение. Для простоты считаем, что файл ПДФ один и тот же. Можно конечно гиперссылок наделать на открытие нужного файла ПДФ, но потом все равно нужную запись в файле ПДФ искать придется через контл+Ф
Пример не могу приложить, потому как ПДФ весит много


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеВсем привет. Пробовал макрорекодером код записать - ничего из этого не вышло. Нужно по значению ячейки открыть нужный файл в ПДФ и найти в файле это значение. Для простоты считаем, что файл ПДФ один и тот же. Можно конечно гиперссылок наделать на открытие нужного файла ПДФ, но потом все равно нужную запись в файле ПДФ искать придется через контл+Ф
Пример не могу приложить, потому как ПДФ весит много

Автор - ovechkin1973
Дата добавления - 01.03.2020 в 16:37
bmv98rus Дата: Воскресенье, 01.03.2020, 17:41 | Сообщение № 2
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2986
Репутация: 524 ±
Замечаний: 0% ±

Excel 2013/2016
ovechkin1973, Что значит открыть? Можно по ссылке , при условии открытия файла в браузере (WEB) перейти на определенную страницу, но не запустить поиск. Если будет программа которая будет иметь API , то и поиск можно задействовать. А так - вариантов скорее всего нет.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеovechkin1973, Что значит открыть? Можно по ссылке , при условии открытия файла в браузере (WEB) перейти на определенную страницу, но не запустить поиск. Если будет программа которая будет иметь API , то и поиск можно задействовать. А так - вариантов скорее всего нет.

Автор - bmv98rus
Дата добавления - 01.03.2020 в 17:41
ovechkin1973 Дата: Воскресенье, 01.03.2020, 19:29 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 422
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А так - вариантов скорее всего нет.

Спасибо, пока отступлюсь. Острой необходимости пока в этом нет..


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
А так - вариантов скорее всего нет.

Спасибо, пока отступлюсь. Острой необходимости пока в этом нет..

Автор - ovechkin1973
Дата добавления - 01.03.2020 в 19:29
krosav4ig Дата: Воскресенье, 01.03.2020, 21:18 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2248
Репутация: 935 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант для Acrobat Reader DC
[vba]
Код
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
        
        AppActivate .Name & " - Adobe Acrobat Reader DC"
        DoEvents
        SendKeys "^+F^A{del}^v{enter}", 1
        
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 01.03.2020, 21:19
 
Ответить
Сообщениевариант для Acrobat Reader DC
[vba]
Код
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
        
        AppActivate .Name & " - Adobe Acrobat Reader DC"
        DoEvents
        SendKeys "^+F^A{del}^v{enter}", 1
        
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 01.03.2020 в 21:18
bmv98rus Дата: Воскресенье, 01.03.2020, 23:26 | Сообщение № 5
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2986
Репутация: 524 ±
Замечаний: 0% ±

Excel 2013/2016
krosav4ig, ой Андрей, как все это зыбко.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеkrosav4ig, ой Андрей, как все это зыбко.

Автор - bmv98rus
Дата добавления - 01.03.2020 в 23:26
krosav4ig Дата: Понедельник, 02.03.2020, 02:51 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2248
Репутация: 935 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ну да, зато бесплатно


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениену да, зато бесплатно

Автор - krosav4ig
Дата добавления - 02.03.2020 в 02:51
ovechkin1973 Дата: Четверг, 05.03.2020, 20:45 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 422
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
вариант для Acrobat Reader DC

Благодарю! Буду пробовать. Извиняюсь, что долго не смотрел созданную мною тему... не было возможности.


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
вариант для Acrobat Reader DC

Благодарю! Буду пробовать. Извиняюсь, что долго не смотрел созданную мною тему... не было возможности.

Автор - ovechkin1973
Дата добавления - 05.03.2020 в 20:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск из Excel в PDF (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2020 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!