Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 15:09   #1
AesmaDiv
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 19
По умолчанию Копирование таблицы с листа на лист

Есть код, который копирует таблицу с одного листа в определённое место на другой лист.
...
Worksheets("Таблица").Range("A1:L56 ").Copy
Worksheets(Name).Cells(1, i * 13 + 1).PasteSpecial
...
Копирование происходит без сохранения ширины столбцов. Добавление параметра
Paste := xlPasteColumnWidths
не дает нужного результата. Видимо потому, что копируется диапазон, и вставляется в одну ячейку. Пробовал в самом Excel`е, вставка с сохранением ширины столбцов работает только если копируется весь лист. Если копировать только диапазон, вставляется без сохранения ширины столбцов...А очень надо.
Подскажите пожалуйста.
AesmaDiv вне форума Ответить с цитированием
Старый 19.12.2010, 16:52   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
for c = 1 to 56
 Worksheets(Name).columns(i*13+c).columnwidth = Worksheets("Таблица").columns(c).columnwidth
next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 19.12.2010 в 16:57.
IgorGO вне форума Ответить с цитированием
Старый 19.12.2010, 17:40   #3
AesmaDiv
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 19
По умолчанию

Пробовал форматировать таблицу после копирования. Не вариант. Слишком много таблиц и процесс форматирования крадёт время. Поэтому и задался вопросом вставки с сохранением ширины столбцов. Меня интересует почему Paste := xlPasteColumnWidths не работает?

Всё. Ответ найден. Как оказалось expression.PasteSpecial Paste:=xlPasteColumnWidths копирует только ширину столбцов. Т.е. без содержимого ячеек. Поэтому (кагбэ это поиндусски не выглядело) решение следующее:
...
Worksheets("Таблица").Range("A1:L56 ").Copy
Worksheets(Name).Cells(1, i * 13 + 1).PasteSpecial
Worksheets(Name).Cells(1, i * 13 + 1).PasteSpecial Paste:=xlPasteColumnWidths

...

Последний раз редактировалось AesmaDiv; 19.12.2010 в 18:06.
AesmaDiv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 Людвиг Microsoft Office Excel 5 25.10.2014 11:46
копирование в другой лист nisan Microsoft Office Excel 1 28.10.2010 19:44
Перенес данных с листа на лист KorBez Microsoft Office Excel 5 04.09.2010 11:13
Как вытащить из таблицы одного листа нужные строки на др лист? alexabv Microsoft Office Excel 3 30.04.2010 12:08
Строки из листа а на лист Б afle Microsoft Office Excel 1 13.12.2009 10:29