Построчный перенос данных из ячеек Excel в закладки Word - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Помогите, пожалуйста, не смогла найти решения поставленной задачи. Перерыла много форумов, нашла варианта передачи таблиц, реализацию псевдоБД. Но передачу построчно в Word-шаблон в случайные места, определённые закладками - не увидела нигде.

Задача.

Формирование документа на основе данных, введённых в анкету, реализованную в Excel.

Идея.

Суть в следующем.

В рабочей книге Excel есть:

первый лист - Anketa, на котором конечный пользователь вводит данные - в белые ячейки. второй лист - Bookmarks - реализована небольшая табличка с только теми данными, которые нужны в конечном документе. Также там реализована проверка на введённые данные и выборка одного из четырёх вариантов документов. Представлена кнопочка с макросом, который, по идее, должен был реализовать перенос данных в шаблон Word. Документ должен сохраниться в отдельную папочку под своим названием 1,2,3 или 4

Проблема.

Не могу сама просечь, что именно работает не так На данную секунду ругается на строчки, где я инициирую выход из Word. Когда убираю - макрос запускается, но данные не выгружаются и ошибку не выдаёт. Помогите, пожалуйста, направьте в правильное направление...

Решение задачи: «Построчный перенос данных из ячеек Excel в закладки Word»

textual
Листинг программы
Sub EnumTORG12()
    Dim lr As ListRow, wbk As Workbook, wdt As Date, dst As Worksheet
    Dim wrd As Word.Application, doc As Word.Document, sNum As String
    Dim sum As String, vdt As Date
    
    wdt = Now() ' Г’ГҐГЄГіГ№Г*Гї Г¤Г*ГІГ* + 0 Г¤Г*. èñïîëüçóåòñÿ äëÿ Г¤Г*ГІГ» âûñòГ*âëåГ*ГЁГї ñ÷åòîâ
    For Each lr In ThisWorkbook.Worksheets("Г’ГЌ").ListObjects(1).ListRows
        With lr.Range
            If Trim$(.Cells(1, 21)) <> "" Then
            
            ' ÑîçäГ*Г*ГЁГҐ ГЄГ*ГЁГЈГЁ ГЇГ® ГёГ*áëîГ*Гі
            If .Cells(1, 15) = 500 Then
                Set wbk = Workbooks.Add(ThisWorkbook.Path & "\ГёГ*áëîГ*Г»\Ñ÷åò 500.xltx")
            ElseIf .Cells(1, 15) = 700 Then
                Set wbk = Workbooks.Add(ThisWorkbook.Path & "\ГёГ*áëîГ*Г»\Ñ÷åò 700.xltx")
            Else
                Debug.Print "ГЌГҐ ГіГЄГ*Г§Г*Г* Г*îðìåð ГЄГ®Г*ГІГ°Г*ГЄГІГ* Гў còðîêå " & .Row
                Stop
            End If
            
            ' ГђГ*áîòГ* ГЇГ® Г§Г*ïîëГ*ГҐГ*ГЁГѕ Г±Г·ГҐГІГ*
            Set dst = wbk.Worksheets(1)
            
            ' Íîìåð ГЁ Г¤Г*ГІГ* Г±Г·ГҐГІГ*
            sNum = .Cells(1, 21) ' ÑîõðГ*Г*ГЁГІГј Г*îìåð Г±Г·ГҐГІГ*
            dst.Cells(3, 5) = dst.Cells(3, 5) & sNum & " îò " & Format(wdt, "dd.mm.yyyy")
            ' Íîìåð òîâГ*Г°Г*îé Г*Г*ГЄГ«Г*Г¤Г*îé (òîðã-12)
            dst.Cells(17, 6) = dst.Cells(17, 6) & Trim$(.Cells(1, 1))
            ' Г„Г*ГІГ* òîâГ*Г°Г*îé Г*Г*ГЄГ«Г*Г¤Г*îé (òîðã-12)
            dst.Cells(19, 6) = CDate(.Cells(1, 2))
            ' ÑóììГ* òîâГ*Г°Г*îé Г*Г*ГЄГ«Г*Г¤Г*îé Гў äîëëГ*Г°Г*Гµ Г‘Г

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5