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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2009, 09:01   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Копирование содержание ячеек и их ширины

Необходимо скопировать содержание ячеек, оформление ячеек и ширину столбцов. Я делаю это так:
Код:
   'Берем шаблон в буфер обмена.
   Шаблоны.Range("Участки.шаблон").Copy
   'Копируем содержание шаблона для нового участка.
   Участки.Cells(1, Смещение_уч).PasteSpecial
   'Копируем размер столцов шаблона.
   Участки.Cells(1, Смещение_уч).PasteSpecial Paste:=xlPasteColumnWidths
Можно ли это сделать одной строчкой?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 28.02.2009, 12:30   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Можно ли это сделать одной строчкой?
Копировать ширину столбцов всё равно придётся отдельной командой...

Но можно и одной строкой:
Код:
Шаблоны.Range("Участки.шаблон").Copy: Участки.Cells(1, Смещение_уч).PasteSpecial: Участки.Cells(1, Смещение_уч).PasteSpecial Paste:=xlPasteColumnWidths
EducatedFool вне форума Ответить с цитированием
Старый 28.02.2009, 17:53   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Копировать ширину столбцов всё равно придётся отдельной командой...
Мне не удалось с копировать высоту строки. ( При копировании она всегда приводиться к одной строчке...
Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Но можно и одной строкой:
)))
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 28.02.2009, 18:22   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Мне не удалось с копировать высоту строки.
Можете попробовать так:
Код:
Range("d3:f4").Copy: Range("d10:f11").EntireRow.AutoFit    ' автоподбор высоты
Или для каждой строки после вставки изменяйте свойство RowHeight:
Код:
Range("d10:f11").RowHeight = 20
Я при формировании отчётов для сохранения высоты строк делаю несколько иначе: копирую весь лист, а потом вырезаю лишнее.
В этом случае нет никаких проблем с высотой строк...
EducatedFool вне форума Ответить с цитированием
Старый 14.08.2009, 15:24   #5
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Скажите, пожалуйста, можно ли узнать ширину столбца до применения AutoFit, которая будет у столбца после AutoFit?
eda вне форума Ответить с цитированием
Старый 14.08.2009, 15:25   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Нет, нельзя.
Можно попробовать вычислить, но это долго и сложно.

Проще выполнить AutoFit, посмотреть, что получится (запомнить новую ширину), и вернуть всё как было.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
уменьшение ширины таблицы Viteef HTML и CSS 5 18.02.2009 23:59
Как сравнить содержание одного и тогоже файла? Волк Общие вопросы Delphi 36 07.02.2009 18:40
Форматирование ячеек shmelvs Microsoft Office Excel 6 24.07.2008 10:24
Умноженеие ячеек Droid Общие вопросы Delphi 8 26.04.2008 13:06
Форматирование ячеек Andr Microsoft Office Excel 12 18.08.2007 20:15