![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.11.2008
Сообщений: 31
|
![]()
Здраствуйте!
Скажите пожалуйста, как с помощью макроса скопировать из одного листа непустые ячейки со второй столбца второй ячейки по последний столбец -> и вставить в другой лист все непустые ячейки НО в один столбец. |
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]() Код:
Все будет скопировано на второй лист, в первую колонку. начиная с первого ряда.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.11.2008
Сообщений: 31
|
![]()
Раньше работал под 2003 офисом. Перешел на 2007, макрос выполняется, но значительно медленее. В чем может быть проблема? И как это можно оптимизировать при количестве копируемых ячеек больше 65000. Ну чтоб он сам переходил с первой колонки во вторую?
|
![]() |
![]() |
![]() |
#4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
В этом случае такой вариант макроса увеличит быстродействие: Код:
Цитата:
Прикрепите к сообщению свой файл, подробно опишите, что и куда надо копировать. (Файл желательно в формате 2003) Для такого количества данных макрос обязательно надо тестировать, чтобы избежать тормозов. |
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите такой вариант. Предварительно выделять ничего не нужно. Диапазон с ячейки "B2" до последней используемой ячейки листа 1 "загоняется" в массив, затем все непустые значения "переформировываются" в другой массив, в котором количество строк в столбцах задается переменной "r" (в примере это 65536). После этого, массив размещается на лист 2. Т.к. все операции производятся в памяти компьютера (нет непосредственной работы с ячейками листа), то данный метод должен обладать максимальной производительностью. Проверьте.
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод значений нескольких столбцов в DBLookUpComboBox | dkl | БД в Delphi | 5 | 07.11.2011 16:41 |
сохранение нескольких излбражений в один файл.. как? | IGWI | Мультимедиа в Delphi | 7 | 18.11.2008 23:16 |
Скопировать по одной ячейке из нескольких файлов в один | Nimo | Microsoft Office Excel | 2 | 09.08.2008 09:25 |