/ / Обект на приложение VBA на Excel

Обект на приложение VBA на Excel

WorksheetFunction | ScreenUpdating | DisplayAlerts | изчисление

Майката на всички обекти е самата Excel. Ние го наричаме Предмет на приложение, Обектът на приложението дава достъп до много опции, свързани с Excel.

WorksheetFunction

Можете да използвате функцията WorkheetFunction в Excel VBA за достъп до функциите на Excel.

1. Например, поставете командния бутон във вашия работен лист и добавете следния ред:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Когато кликнете върху командния бутон на работния лист, Excel VBA изчислява средната стойност на стойностите в клетки A1 и клетка A2 и поставя резултата в клетка A3.

Работен листФункция в Excel VBA

Забележка: вместо Application.WorksheetFunction.Средно, просто използвайте WorksheetFunction.Average. Ако погледнете формулата, можете да видите, че самата формула не е въведена в клетка A3. За да вмъкнете самата формула в клетка A3, използвайте следния ред:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Понякога може да ви е полезно да деактивирате актуализирането на екрана (за да избегнете трептене), докато изпълнявате код. В резултат на това вашият код ще работи по-бързо.

1. Например, поставете командния бутон във вашия работен лист и добавете следните кодови редове:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Когато кликнете върху командния бутон на работния лист, Excel VBA показва всяка стойност на малка част от секундата и това може да отнеме известно време.

ScreenUpdating

2. За да ускорите процеса, актуализирайте кода, както следва.

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 да не показва предупреждения при изпълнение на код.

1. Например, поставете командния бутон във вашия работен лист и добавете следния ред:

ActiveWorkbook.Close

Когато кликнете върху командния бутон на работния лист, Excel VBA затваря файла ви в Excel и ви пита да запазите промените, които сте направили.

DisplayAlerts

2. За да инструктирате Excel VBA да не показва този сигнал, докато изпълнява код, актуализирайте кода, както следва.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

В резултат на това Excel VBA затваря Excel файл, без да ви моли да запазите направените от вас промени. Всички промени са загубени.

изчисление

По подразбиране изчисляването е зададено на автоматичен. В резултат на това Excel преизчислява работната книга автоматично всеки път, когато се променя стойност, засягаща формула. Ако работната ви книга съдържа много сложни формули, можете да ускорите макроса си, като зададете изчисление на ръчно.

1. Например, поставете командния бутон във вашия работен лист и добавете следния ред:

Application.Calculation = xlCalculationManual

Когато кликнете върху командния бутон на работния лист, Excel VBA задава изчислението на ръчно.

2. Можете да потвърдите това, като кликнете върху Файл, Опции, Формули.

Опции за изчисляване

3. Сега, когато промените стойността на клетка А1, стойността на клетка В1 не се преизчислява.

Ръчно изчисляване

Можете ръчно да преизчислите работната книга, като натиснете F9.

4. В повечето случаи, в края на кода си отново ще зададете автоматичното изчисление. Просто добавете следния код, за да постигнете това.

Application.Calculation = xlCalculationAutomatic
Също така се чете: