Показать полную графическую версию : Помогите написать макрос в Excel, экспорт данных из Excel в Word.
Добрый день, помогите пожалуйста написать макрос , который бы экспортировал определенные данные из таблицы (например ячейку 3 столбца 1, столбца 3 и столбца 5, вместе с заголовками) Excel в Word в абсолютно том же формате, т.е вставлял бы в Word фаил строку из таблицы с тем же шрифтом, размером ячеек, толщиной границ таблицы и т.д. Сложность еще заключается в том, что критерием для выбора определенной строки из всего объема таблицы должен служить отмеченный напротив нужной строки флажок (элемент управления формы).
Как это приблизительно должно выглядеть показано в приложенной таблице.
Может быть у кого-нибудь есть макросы для решения похожей задачи. Сам только начинаю изучать VBA так что для мне эта задача кажется фантастически сложной.
Буду очень признателен за любую помощь.
С уважением, Евгений.
Delirium
23-06-2010, 17:18
E.v.g, как срочно необходимо сделать макрос?
Добрый день Delirium, oсобой спешки нет, планировал закончить таблицу к концу этого месяца.
Delirium
19-08-2010, 05:07
должен служить отмеченный напротив нужной строки флажок (элемент управления формы). »
А обязательно флажок? Почему нельзя использовать другой способ отметки, например, писать 1 или 0?
Сложность в том, что флажки никоим образом не привязаны к линиям сетки. Если, конечно, количество строк и флажков строго фиксированно, то можно каждому флагу назначить свою ячейку(через свойства объекта). Если же количество произвольно, то тут никак не получится.(ну, или, точнее, я не пойму, как это сделать :) )
Delirium
19-08-2010, 06:16
Что мы имеем:
Назначив с свойствах флажка зависимую ячейку(в нее выводится 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
Столбец с состояниями можно скрыть и будет совсем чудно. В примере на флажки назначено только 5 верхних флажков. Остальные не охота было прощелкивать :)
Добрый день, спасибо огромное. Да наверное с 1 и 0 будет проще чем с флажками.
Единственное что, сейчас копируются выделенные ячейки только первого столбца, подскажите пожалуйста как можно расширить этот диапазон? И еще, как сделать так что бы заголовки таблицы и данные из таблицы брались не из всего диапазона таблицы, а выборочно,
скажем из диапазона А:C, F:I и т.д и выводились в Word.
Заранее спасибо.
для вывода диапазона столбиков:
вместо
Cells(i, 1).Copy
поставить
Range(Cells(i, 1), Cells(i, 6)).Copy
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.