Как ускорить копирование ячеек в Excel vba - PullRequest
1 голос
/ 04 июня 2010

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 04 июня 2010

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

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

0 голосов
/ 04 июня 2010

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

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

Он вставляет диапазон в столбец A на листе 1 в номере строки, присвоенной переменной emptyCell.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...