Объект Excel VBA приложений
Мать всех объектов сама Excel. Мы называем это объект Application. Объект приложения предоставляет доступ к большому количеству связанных опций Excel.
WorksheetFunction
Вы можете использовать свойство WorksheetFunction в Excel VBA для функций Excel доступа.
-
Например, поместите
ссылку: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте следующую строку кода:
Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))
При нажатии на кнопку управления на листе Excel VBA вычисляет среднее значение в ячейке A1 и ячейки A2 и помещает результат в ячейку A3.
Примечание: вместо Application.WorksheetFunction.Average, просто используйте WorksheetFunction.Average. Если вы посмотрите на строку формул, вы можете увидеть, что сама формула не вставлена в ячейку A3. Чтобы вставить саму формулу в ячейке A3, используйте следующую строку кода:
Range("A3").Value = "=AVERAGE(A1:A2)"
ScreenUpdating
Иногда может оказаться полезным для отключения обновления экрана (чтобы избежать мерцания) во время выполнения кода. В результате, ваш код будет работать быстрее.
-
Например, поместите
ссылку: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте следующие строки кода:
Dim i As Integer For i = 1 To 10000 Range("A1").Value = i Next i
При нажатии на кнопку управления на рабочем листе, Excel VBA отображает каждое значение крошечную долю секунды, и это может занять некоторое время.
-
Чтобы ускорить процесс, обновить код следующим образом.
Dim i As Integer Application.ScreenUpdating = False For i = 1 To 10000 Range("A1").Value = i Next i Application.ScreenUpdating = True
В результате, ваш код будет работать намного быстрее, и вы увидите только конечный результат (10000).
DisplayAlerts
Вы можете проинструктировать Excel VBA не Отображение предупреждений во время выполнения кода.
-
Например, поместите
ссылку: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте следующую строку кода:
ActiveWorkbook.Close
При нажатии на кнопку управления на рабочем листе, Excel VBA закрывает файл Excel и просит вас, чтобы сохранить сделанные изменения.
-
Поручить Excel VBA не показывать это предупреждение во время выполнения кода, обновите код следующим образом.
Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True
В результате, Excel VBA закрывает файл Excel, не спрашивая вас, чтобы сохранить сделанные изменения. Любые изменения будут потеряны.
Расчет
По умолчанию расчет устанавливается автоматически. В результате, Excel автоматически пересчитывает книгу каждый раз, когда значение влияет на формулу изменения. Если рабочая книга содержит много сложных формул, вы можете ускорить ваш макрос, установив расчет ручной режим.
-
Например, поместите
ссылку: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте следующую строку кода:
Application.Calculation = xlCalculationManual
При нажатии на кнопку управления на листе Excel VBA устанавливает расчет ручной режим.
-
Вы можете проверить это, нажав на файл, параметры, формулы.
-
Теперь, когда вы измените значение ячейки A1, значение ячейки B1 не пересчитывается.
Вы можете вручную пересчитать книги, нажав клавишу F9.
-
В большинстве случаев, вы будете установить расчет на автоматический снова в конце кода. Просто добавьте следующую строку кода для достижения этой цели.
Application.Calculation = xlCalculationAutomatic