Как из трех книг-листов Excel сбрать один документ Word?

Автор GWolf, 12.11.2008, 14:39

« назад - далее »

GWolf

Добрый всем вечер!
Я незнаток ворда, а поэтому прошу помощи. Из трех книг Excel (в каждой - один лист с табличкой. Все таблички разного формата (количество строк и столбцов разное) нужно собрать документ Word.
Хотел пристегнуть архив с примером а недает?!  >:( ??? :-[
Путей к вершине - множество. Этот один из многих!

Шпец Докапыч

Цитата: GWolf от 12.11.2008, 14:39
Хотел пристегнуть архив с примером, а не дает?!  >:( ??? :-[
Файл должен быть с расширением: rar, zip, 7z. Конкретизируйте, пожалуйста, как не даёт, что говорит?

ЦитироватьВсе таблички разного формата (количество строк и столбцов разное) нужно собрать документ Word.

Насколько я понял, особой сложности передать данные в Word нет, поскольку с темой "Связь с Word или другой вариант" Вы знакомы. Осталось лишь грамотно собрать данные с листов? Что ж, давайте взглянем на ваш примерчик, выкладывайте...
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GWolf

Сообщение выдает: Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с Администратором.
Размер файла 57,6 Kb с расширением .rar ???
Путей к вершине - множество. Этот один из многих!

Шпец Докапыч

#3
Цитата: GWolf от 13.11.2008, 11:08
Сообщение выдает: Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с Администратором.

Увеличил папку.
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GWolf

#4
Пробую пристегнуть еще раз!
Ч-з минуту... Ну слава богу - получилось! Вообще-то в вордовский файл необязательно. Можно и в любимый Excel. Но чтобы при выводе на печать получалось тоже самое что и при печати .doc файла из вложения. ???
Путей к вершине - множество. Этот один из многих!

Шпец Докапыч

Цитата: GWolf от 13.11.2008, 12:25
Вообще-то в вордовский файл необязательно. Можно и в любимый Excel.

Сделал в Word, но, для того чтобы таблички не выползали за края документа, следует подобрать подходящую ширину исходных столбцов Excel.

Открыв файлы, выполняем код:
Sub Excel2WordKopipastom()
Dim wSDO As Workbook, wlogOb As Workbook, wlogMt As Workbook, sh As Worksheet
 
  Set wSDO = Workbooks("tpSDO.xls")
  Set wlogOb = Workbooks("logOb.xls")
  Set wlogMt = Workbooks("logMt.xls")
  'Здесь можно сделать открытие книг или рабочей области
 
  With CreateObject("Word.Application")
    .Documents.Add
    'здесь можно установить параметры страницы
    For Each i In Array(wSDO, wlogOb, wlogMt)
      i.Activate
      'вместо "C4", скорее всего потребуется цикл перебора ячеек
      Set sh = Range(i.Sheets("_").Range("C4").Hyperlinks(1).SubAddress).Parent
      sh.Range("A1:G" & sh.[A9999].End(xlUp).Row + 1).Copy
      .Selection.Paste
      Set sh = Nothing
    Next
    .Visible = 1
    'при необходимости добавляем сохранение, печать, закрытие, удаление и прочее
  End With
End Sub
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GWolf

Цитата: Шпец Докапыч от 13.11.2008, 14:49
... следует подобрать подходящую ширину исходных столбцов Excel.

А можно ли эту ширину определять программно, исходя из обсчета общей ширины вордовского документа формата А4, разворот Книжный?
Путей к вершине - множество. Этот один из многих!

Шпец Докапыч

Цитата: GWolf от 13.11.2008, 15:21
А4, разворот Книжный.

Какие поля слева и справа? Останутся по умолчанию?

Ещё такой момент. Резюмирую. Есть табличка на листе Excel. Посредством копипаста она перелетает в документ Word и не совпадает по размерам. Требуется, чтобы совпадала. Встаёт резонный вопрос, каким из путей Вы хотите идти? Варианты ответов:

  • 1) единожды макросом подогнать Excel-табличку под определённую ширину, указав её в сантиметрах;
  • 2) во время выполнения кода, после создания документа Word, определить его размеры и безвозвратно отформатировать Excel-таблички, чтобы впоследствии подкорректировать, если вдруг данным "будет тесно";
  • 3) также как и во втором пункте, только, после копипаста, вернуть изначальную ширину столбцов;
  • 4) выравнивать формат уже после окончательной вставки данных в Word, работая уже с его объектной моделью.
  • 5) без разницы, как будет виднее творцу. :)
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GWolf

#8
Цитата: Шпец Докапыч от 13.11.2008, 18:51
Цитата: GWolf от 13.11.2008, 15:21
А4, разворот Книжный.

Какие поля слева и справа? Останутся по умолчанию?

Ещё такой момент. Резюмирую. Есть табличка на листе Excel. Посредством копипаста она перелетает в документ Word и не совпадает по размерам. Требуется, чтобы совпадала. Встаёт резонный вопрос, каким из путей Вы хотите идти? Варианты ответов:

  • 1) единожды макросом подогнать Excel-табличку под определённую ширину, указав её в сантиметрах;
  • 2) во время выполнения кода, после создания документа Word, определить его размеры и безвозвратно отформатировать Excel-таблички, чтобы впоследствии подкорректировать, если вдруг данным "будет тесно";
  • 3) также как и во втором пункте, только, после копипаста, вернуть изначальную ширину столбцов;
  • 4) выравнивать формат уже после окончательной вставки данных в Word, работая уже с его объектной моделью.
  • 5) без разницы, как будет виднее творцу. :)

Доброе утро! Уважаемый Шпец!
Тут я обратил внимание, что не сказал Вам нижайшее СПАСИБО, но это еще впереди. Иначе за каждое Ваше слово - Большое Спасибо!!!!

По поводу вариантов: исходя из целей и задачь выложеного проекта - вариант № 3 - наиболее интересен. Если я Вас еще не "достал" своей задачей - помогите. Word не моя стихия.
Путей к вершине - множество. Этот один из многих!

Шпец Докапыч

Цитата: GWolf от 14.11.2008, 06:00
Если я Вас еще не "достал" своей задачей - помогите.

Судя по тому, что на вопрос про поля Вы не обратили внимания, значит будем считать его несущественным и сосредоточимся на линейке...  ;)
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GWolf

Цитата: Шпец Докапыч от 14.11.2008, 07:11
Судя по тому, что на вопрос про поля Вы не обратили внимания, значит будем считать его несущественным и сосредоточимся на линейке...  ;)

Прошу прощения: вопрос про поля?
Путей к вершине - множество. Этот один из многих!

GWolf

#11
Т.е. я непонял о каких полях идет речь. :( Ох и дуб я Ворде !!!!!!!!!!!!
Путей к вершине - множество. Этот один из многих!

Шпец Докапыч

Цитата: GWolf от 14.11.2008, 12:31
Т.е. я непонял о каких полях идет речь. :(

Поля Word они и в Excel поля. Короче, отступы от краёв листа или шириной границ это ещё можно обозвать. Мы будем их программно изменять?
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GWolf

Для проработки темы: Все что можно изменить программно, давайте изменим. ;D И если можно с коментарием действий. Но это повозможности. Я и так уже безбожно Вас "загрузил"! Но вариантов нет. Тема требует решения, а спросить больше неукого! :'(
Путей к вершине - множество. Этот один из многих!

GWolf

Уважаемый Шпец! Извените за настойчивость!
Путей к вершине - множество. Этот один из многих!