![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.09.2011
Сообщений: 4
|
![]()
Доброго времени суток.
Имеется книга состоящая из множества листов с данными. На каждом листе задана область печати, диапазон ячеек в каждой области печати может быть различным. При копировании диапазонов областей печати из Excel в Word средствами VBA возникает проблема: диапазоны областей печати, состоящие из не смежных диапазонов ячеек (например: ActiveSheet.PageSetup.PrintArea = "$B$3:$K$29,$N$3:$T$21"), не копируются в Word. Вопрос: имеется ли возможность в VBA для решения данной проблемы. |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Да, конечно.
Разбиваете эти диапазоны на части - и копируете в Word по-одному: Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 12.09.2011
Сообщений: 4
|
![]()
Спасибо за помощь.
Но код не работает на странице с областью печати, состоящей из не смежных диапазонов ячеек возникает ошибка: Run-time error '1004' Method 'Range' of object '_Global' failed |
![]() |
![]() |
![]() |
#4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Неужели так сложно почитать правила раздела, и прикрепить файл, на которой возникает ошибка?
Я тестировал на вашем примере (ActiveSheet.PageSetup.PrintArea = "$B$3:$K$29,$N$3:$T$21") - всё работает |
![]() |
![]() |
![]() |
#5 |
Регистрация: 12.09.2011
Сообщений: 4
|
![]()
Пользуюсь MS Office 2010.
Файл, где возникает ошибка, приложил согласно правилам. Хотя ошибка у меня возникает в любом похожем примере, где количество диапазонов >1. |
![]() |
![]() |
![]() |
#6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
У меня всё работает:
Код:
Пример в вашем файле: http://excelvba.ru/XL_Files/Sample__...__16-14-09.zip |
![]() |
![]() |
![]() |
#7 |
Регистрация: 12.09.2011
Сообщений: 4
|
![]()
Попробовал на разных компах: переменной ra присваивается значение только при версии Excel 2003, видимо что-то с настройками, буду искать.
В любом случае, спасибо. |
![]() |
![]() |
![]() |
#8 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Проблема была в том, что Excel 2003 выдаёт свойство ActiveSheet.PageSetup.PrintArea так:
Цитата:
Цитата:
Поэтому надо исправить код макроса: Код:
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
VBA Word,VBA Excel решить 2 задачи | fafolo4ka | Фриланс | 6 | 05.03.2012 01:15 |
Копирование объектов из WORD | dgleg | Общие вопросы Delphi | 0 | 28.12.2010 15:35 |
Копирование областей экрана | DRAgon™ | Паскаль, Turbo Pascal, PascalABC.NET | 22 | 23.07.2010 21:54 |
Нужна программа или макрос для печати шаблонов word с данными взятыми из таблицы EXCEL | dimatz | Microsoft Office Excel | 3 | 05.03.2010 12:17 |
Сложное копирование в Word. | rzrwolf | Microsoft Office Excel | 2 | 11.01.2009 05:48 |