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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 17:24   #1
gregory1b
Пользователь
 
Регистрация: 14.10.2010
Сообщений: 14
Вопрос скрыл столбцы, скопировал, как вставить в другую книгу без скрытых столбцов?

Добрый день!

Нужно из 4-х разных книг скопировать данные? и вставить в одну, скопированые диапазоны будут находиться друг под другом.

в этих четырех книгах есть скрытые столбцы, когда вставляю в другую книгу - они тоже копируются, подскажите как вставить без скрытых столбцов?

Или заменить строку

Sheets(WSheet).Cells(3, i).ColumnWidth=0

Так чтоб удалялись столбцы, а книга потом закрывалась без сохранения

Часть кода:
WSheet = ActiveWorkbook.Name
i=1
While Sheets(WSheet).Cells(3, i) <> ""
If Sheets(WSheet).Cells(2, i)="Товар" Then
i=i+1
ElseIf Sheets(WSheet).Cells(2, i)="Цена" Then
i=i+1
ElseIf Sheets(WSheet).Cells(2, i)="Код" Then
i=i+1
ElseIf Sheets(WSheet).Cells(2, i)="Артикул" Then
i=i+1
Else
Sheets(WSheet).Cells(3, i).ColumnWidth=0
i=i+1
End If
Wend
i=1
While Sheets(WSheet).Cells(3, i) <> ""
i=i+1
Wend
КолКол=i-1
i=1
While Sheets(WSheet).Cells(i, 1) <> ""
i=i+1
Wend
КолСтрок=i-1
Range(Sheets(WSheet).Cells(1, 1) : Sheets(WSheet).Cells(КолСтрок, КолКол).Copy
Workbook("Книга1").Activate
i=1

While Sheets("Лист1").Cells(2, i) <> ""
i=i+1
Wend
Sheets("Лист1").Cells(1, i).Select
ActiveSheet.Paste
(и тут вставляется вместе со скрытыми столбцами!)
gregory1b вне форума Ответить с цитированием
Старый 28.10.2010, 17:34   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

посмотрите справку VB: SpecialCells Method в нем есть такой параметр: xlCellTypeVisible. All visible cells - все нескрытые ячейки, выделите с помощью него область и т.д.

Запись, например, может выглядеть так. Необходимо выделить все нескрытые ячейки в колонках А:С, столбец В скрыт и скопировать в открытую вторую книгу:

Код:
[a:c].SpecialCells(xlCellTypeVisible).copy workbooks(2).sheets(1).cells(1,1)

Последний раз редактировалось EugeneS; 28.10.2010 в 17:46.
EugeneS вне форума Ответить с цитированием
Старый 28.10.2010, 17:42   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Весь ваш код можно заменить на 2-3 строки - но надо понимать, что и откуда копировать.
Да и работать будет намного быстрее.

Но вы не прочитали правила раздела, и не прикрепили пример файла, так что вряд ли вам помогут...
EducatedFool вне форума Ответить с цитированием
Старый 30.10.2010, 15:14   #4
gregory1b
Пользователь
 
Регистрация: 14.10.2010
Сообщений: 14
По умолчанию

дело в том, что под таблица в каждой из книг с основными данными постоянно с разным количеством строк, а под ней находится вторая таблица и график

я заменил строку

Sheets(WSheet).Cells(3, i).ColumnWidth=0

на

Range(Sheets(WSheet).Cells(1, i) : Sheets(WSheet).Cells(КолСтрок, i).Delete
со смещением влево и удалил после него i=i+1
с последующим закрытием книги без сохранения
спасибо за советы!
gregory1b вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать макросы в другую книгу? alec Microsoft Office Excel 5 30.04.2010 08:13
Автоматическая нумерация столбцов с учетом скрытых cons Microsoft Office Excel 12 27.04.2010 12:25
Как перенести макросы и формы VB в другую книгу Talisman Microsoft Office Excel 3 21.11.2009 12:35
Удаление скрытых столбцов после фильтрации. Garrison Microsoft Office Excel 7 02.09.2009 16:27
скопировал фотки, удалил их с карты, вставить забыл. Потом скопировал что-то другое, Как зайти в буфер? Арчо Операционные системы общие вопросы 3 09.08.2009 17:53