У меня есть этот код Excel VB, и каждый раз после того, как он выполняет эту строку, он приостанавливается в течение половины секунды:
Worksheets(ws.Name).Range("A" & i & ":G" & i).Copy _
Destination:=Worksheets("Sheet1").Range("A" & emptyCell)
Кто-то может сказать мне, что это делает, и как я могу препятствовать тому, чтобы он занял много времени?
У меня есть Microsoft Excel 2007 на Windows XP Pro
Обновление: Если я вставляю его вручную, это ожидает о том же количестве времени.
Все зависит от технических характеристик оборудования (жесткий диск, память, сетевое соединение и т. Д.). Если он работает в сети, это будет самым большим узким местом. В коде нет ничего неправильного.
Вы также можете попробовать ускорить процедуру, переключив расчет рабочих книг на ручной и отключив обновление экрана. Если расчет автоматический, он будет рассчитываться при каждом вызове копирования.
Он копирует диапазон ячеек из рабочего листа, назначенного переменной ws, и вставляет его в Sheet1.
Копируемый диапазон - от A: G в номере строки, присвоенном переменной i.
Диапазон вставляется в столбец A листа Sheet1 в номер строки, присвоенный переменной emptyCell.
Вы можете предотвратить это, поставив перед каждой строкой апостроф.
Однако вы можете сначала изучить, ПОЧЕМУ код это делает!