Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
VBA Exel: найти текст в файле Word и вставить в Exel
 
Доброго времени, форумчане.
Помогите с макросом. Запускается из Exel.
Есть файл Ворд. Есть текст, который всегда находится между словами "Приложения:" и "Представитель".
Необходимо скопировать данный текст в ThisWorkbook.
Написал часть кода. Не могу найти инфу, как определить данный кусок текста.
Код
Sub Find_Copy_Paste()

Dim myWord As Object, myDoc As Object, myText As Object
Dim lastRow As Long
Dim Name As String
Dim strText1 As String, strText2 As String

Dim strN As String, strK As String 'переменные начала и конца копируемого текста

Name = ThisWorkbook.Worksheets("ID+cert").Range("B2") & ".docx"
strText1 = "Приложения:" '+1 - Начало фрагмента текста
strText2 = "Представитель" '-1 - Конец фрагмента текста

    Set myWord = GetObject(, "Word.Application")
    Set myDoc = myWord.Documents(Name)
    Set myText = myDoc.Range




ThisWorkbook.Worksheets("Листы").Range("A3") = скопированный текст

End Sub
Возможно кто-то сталкивался с подобным?
На форуме находил похожие темы, но там описывают работу из-под файла ворд.
 
Изменено: Анатолий - 20.03.2024 15:45:23
Как обращаться к ячейкам разных листов из пользовательской формы?
 
Добрый день.
Подскажите пожалуйста, где собака зарыта? Есть книга с несколькими листами.
Создал форму и написал макрос. Все работает, но правильные данные макрос вытягивает, только если находишься на листе который указал в форме.
А хочется что бы правильные данные вытягивались при нахождении в любом месте книги.
Копирование данных из Ворда в Эксель макросом
 
Добрый день, форумчане.
Возникла ошибка 429 в коде.
Смысл кода - найти файл ворд на сервере (все пути на отдельном листе Акты) и скопировать данные из таблиц в эксель.
Без цикла For Line... код работает идеально, но требуется обработать более 3000 строк. И вот я решил попробовать цикл.
Желтым горит строчка
Set objWrdApp = GetObject(, "Word.Application").
Возможно подскажите в чем кроется проблема. Я сам начинающий пользователь VBA, поэтому прошу не ругаться если код не идеальный )
Сам код ниже.
Код
Sub Copy_Paste_Full()

Dim lastRow As Long
Dim Line As Long
Dim NumAct As String, Path As String
Dim objWrdApp As Object
Dim objWrdDoc As Object
Dim lCol As Long, aTbl As Long, i As Long, j As Long, lastRow_1 As Long

lastRow = ThisWorkbook.Worksheets("Акты").Range("A" & Rows.Count).End(xlUp).Row

For Line = 2 To lastRow

NumAct = ThisWorkbook.Worksheets("Акты").Range("A" & Line)
Path = ThisWorkbook.Worksheets("Акты").Range("B" & Line)

'    On Error Resume Next
    Set objWrdApp = GetObject(, "Word.Application")
    If objWrdApp Is Nothing Then
        Set objWrdApp = CreateObject("Word.Application")
        Set objWrdDoc = objWrdApp.Documents.Open(Path)
            objWrdDoc.Activate
            objWrdApp.Visible = True
    End If

    lCol = objWrdDoc.tables.Count

    For aTbl = 2 To lCol - 1
        ReDim arr(1 To objWrdDoc.tables(aTbl).Rows.Count, 1 To objWrdDoc.tables(aTbl).Columns.Count)
            For j = 1 To UBound(arr, 2)
                For i = 2 To UBound(arr, 1)
                    arr(i, j) = Trim(Replace(objWrdDoc.tables(aTbl).cell(i, j).Range.Text, Chr(7), ""))
                Next i
            Next j
        
            lastRow_1 = ThisWorkbook.Worksheets("ID").Range("A" & Rows.Count).End(xlUp).Row
        
            ThisWorkbook.Sheets("ID").Range("A" & lastRow_1 + 1).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr

        If Range("A" & lastRow_1 + 1) = "" Then
            Range("A" & lastRow_1 + 1).EntireRow.Delete
        End If

    Next aTbl

        GetObject(, "Word.Application").Quit

Next Line

End Sub
Сумма за период по условию
 
Доброго времени.
Прошу дать подсказку какие функции необходимо использовать для выполнения задачи. Условие в приложенном файле.
Через ИНДЕКС ПОИСКПОЗ могу найти значение ячейки. Но как суммировать я голову сломал.
Страницы: 1
Наверх