Как ускорить копирование ячеек в Excel vba

У меня есть этот код Excel VB, и каждый раз после того, как он выполняет эту строку, он приостанавливается в течение половины секунды:

Worksheets(ws.Name).Range("A" & i & ":G" & i).Copy _
Destination:=Worksheets("Sheet1").Range("A" & emptyCell)

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

У меня есть Microsoft Excel 2007 на Windows XP Pro

Обновление: Если я вставляю его вручную, это ожидает о том же количестве времени.

1
задан John Koerner 4 May 2012 в 12:26
поделиться

2 ответа

Все зависит от технических характеристик оборудования (жесткий диск, память, сетевое соединение и т. Д.). Если он работает в сети, это будет самым большим узким местом. В коде нет ничего неправильного.

Вы также можете попробовать ускорить процедуру, переключив расчет рабочих книг на ручной и отключив обновление экрана. Если расчет автоматический, он будет рассчитываться при каждом вызове копирования.

2
ответ дан 3 September 2019 в 00:03
поделиться

Он копирует диапазон ячеек из рабочего листа, назначенного переменной ws, и вставляет его в Sheet1.

Копируемый диапазон - от A: G в номере строки, присвоенном переменной i.

Диапазон вставляется в столбец A листа Sheet1 в номер строки, присвоенный переменной emptyCell.

Вы можете предотвратить это, поставив перед каждой строкой апостроф.

Однако вы можете сначала изучить, ПОЧЕМУ код это делает!

0
ответ дан 3 September 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: