Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите написать макрос в Excel, экспорт данных из Excel в Word. (http://forum.oszone.net/showthread.php?t=178877)

E.v.g 22-06-2010 15:40 1439407

Помогите написать макрос в Excel, экспорт данных из Excel в Word.
 
Вложений: 1
Добрый день, помогите пожалуйста написать макрос , который бы экспортировал определенные данные из таблицы (например ячейку 3 столбца 1, столбца 3 и столбца 5, вместе с заголовками) Excel в Word в абсолютно том же формате, т.е вставлял бы в Word фаил строку из таблицы с тем же шрифтом, размером ячеек, толщиной границ таблицы и т.д. Сложность еще заключается в том, что критерием для выбора определенной строки из всего объема таблицы должен служить отмеченный напротив нужной строки флажок (элемент управления формы).
Как это приблизительно должно выглядеть показано в приложенной таблице.
Может быть у кого-нибудь есть макросы для решения похожей задачи. Сам только начинаю изучать VBA так что для мне эта задача кажется фантастически сложной.
Буду очень признателен за любую помощь.
С уважением, Евгений.

Delirium 23-06-2010 17:18 1440248

E.v.g, как срочно необходимо сделать макрос?

E.v.g 24-06-2010 13:54 1440830

Добрый день Delirium, oсобой спешки нет, планировал закончить таблицу к концу этого месяца.

Delirium 19-08-2010 05:07 1476806

Цитата:

Цитата E.v.g
должен служить отмеченный напротив нужной строки флажок (элемент управления формы). »

А обязательно флажок? Почему нельзя использовать другой способ отметки, например, писать 1 или 0?

Сложность в том, что флажки никоим образом не привязаны к линиям сетки. Если, конечно, количество строк и флажков строго фиксированно, то можно каждому флагу назначить свою ячейку(через свойства объекта). Если же количество произвольно, то тут никак не получится.(ну, или, точнее, я не пойму, как это сделать :) )

Delirium 19-08-2010 06:16 1476814

Вложений: 1
Что мы имеем:
Назначив с свойствах флажка зависимую ячейку(в нее выводится true или false, в зависимости от состояния кнопки), и написав следующий макрос, получили экспорт в Word диапазона в зависимости от состояния флажка:

Код:

Dim AppWord As Word.Application
   
    Set AppWord = CreateObject("Word.Application")
    AppWord.Visible = True

    AppWord.Documents.Add
   
    Range("A5:F5").Copy 'Копируем и вставляем заголовок с листа
    AppWord.Selection.Paste
   
    For i = 6 To 36 ' Цикл по строкам до 36-ой строки
   
    If Cells(i, 16) = True Then '16 столбец - столбец, в котором привязаны флажки и ячейки(см. вложение)
   

    Cells(i, 1).Copy' копируем ячейку и вставляем
    AppWord.Selection.Paste
   
 
    End If
   
    Next
   
    Application.CutCopyMode = False
    Set AppWord = Nothing

После вставки кода идем в Tools - Preferences и выставляем там галку напротив Microsoft Word Object Library. Тестируем :)
Во вложении - рабочий пример.

Delirium 19-08-2010 06:17 1476815

Столбец с состояниями можно скрыть и будет совсем чудно. В примере на флажки назначено только 5 верхних флажков. Остальные не охота было прощелкивать :)

E.v.g 19-08-2010 11:16 1477049

Добрый день, спасибо огромное. Да наверное с 1 и 0 будет проще чем с флажками.
Единственное что, сейчас копируются выделенные ячейки только первого столбца, подскажите пожалуйста как можно расширить этот диапазон? И еще, как сделать так что бы заголовки таблицы и данные из таблицы брались не из всего диапазона таблицы, а выборочно,
скажем из диапазона А:C, F:I и т.д и выводились в Word.
Заранее спасибо.

diii63 03-05-2018 22:18 2811974

для вывода диапазона столбиков:

вместо
Cells(i, 1).Copy
поставить
Range(Cells(i, 1), Cells(i, 6)).Copy


Время: 15:52.

Время: 15:52.
© OSzone.net 2001-