/ / "Excel" VBA taikymo objektas

Excel VBA taikymo objektas

"WorksheetFunction" | ScreenUpdating | DisplayAlerts | Skaičiavimas

Visų objektų motina yra pati "Excel". Mes tai vadiname Taikymo objektas. Programos objektas suteikia prieigą prie daugelio "Excel" susijusių parinkčių.

"WorksheetFunction"

Galite naudoti nuosavybės WorksheetFunction Excel VBA naudotis Excel funkcijomis.

1. Pavyzdžiui, į savo darbalapį pridėkite komandų mygtuką ir pridėkite šią kodo eilutę:

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

Kai paspausite komandų mygtuką darbalapyje, Excel VBA apskaičiuoja langelių A1 ir A2 langelių verčių vidurkį ir įkelia rezultatą į ląstelę A3.

"WorksheetFunction" programoje "Excel VBA"

Pastaba: vietoj Application.WorksheetFunction.Vidutiniškai tiesiog naudokite WorksheetFunction.Average. Jei pažvelgsite į formulės juostą, pamatysite, kad pati formulė nėra įdėta į ląstelę A3. Norėdami įterpti pačią formulę į ląstelę A3, naudokite šią kodo eilutę:

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

ScreenUpdating

Kartais gali būti naudinga išjungti ekrano atnaujinimą (siekiant išvengti mirgėjimo) vykdant kodą. Dėl to jūsų kodas veiks greičiau.

1. Pavyzdžiui, į savo darbalapį pridėkite komandų mygtuką ir pridėkite šias kodo eilutes:

Dim i As Integer

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

Kai paspausite komandų mygtuką darbalapyje, Excel VBA parodo kiekvieną vertę nedidelę sekundės dalį, ir tai gali užtrukti šiek tiek laiko.

ScreenUpdating

2. Norėdami pagreitinti procesą, atnaujinkite kodą taip.

Dim i As Integer

Application.ScreenUpdating = False

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

Application.ScreenUpdating = True

Todėl jūsų kodas veiks daug greičiau ir pamatysite tik galutinį rezultatą (10000).

DisplayAlerts

Jūs galite pavesti Excel VBA nerodyti perspėjimų vykdydami kodą.

1. Pavyzdžiui, į savo darbalapį pridėkite komandų mygtuką ir pridėkite šią kodo eilutę:

ActiveWorkbook.Close

Kai paspausite komandų mygtuką darbalapyje, Excel VBA uždarys jūsų "Excel" failą ir prašys išsaugoti atliktus pakeitimus.

DisplayAlerts

2. Norėdami pavesti Excel VBA nerodyti šio perspėjimo vykdant kodą, atnaujinkite kodą taip.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Dėl to "Excel VBA" uždaro "Excel" failą, neprašydama išsaugoti atliktų pakeitimų. Bet kokie pakeitimai prarasti.

Skaičiavimas

Pagal numatytuosius nustatymus skaičiavimas nustatytas kaip automatinis. Dėl to "Excel" automatiškai perskaičiuoja darbo knygą kiekvieną kartą, kai pakeičiama formulė. Jei jūsų darbaknyte yra daug sudėtingų formulių, galite paspartinti makrokomandą, nustatydami skaičiavimus rankiniu būdu.

1. Pavyzdžiui, į savo darbalapį pridėkite komandų mygtuką ir pridėkite šią kodo eilutę:

Application.Calculation = xlCalculationManual

Kai paspausite komandų mygtuką darbalapyje, Excel VBA nustato skaičiavimus rankiniu būdu.

2. Galite tai patikrinti spustelėdami Failas, Parinktys, Formulės.

Skaičiavimo parinktys

3. Dabar, kai pakeičiate langelio A1 vertę, ląstelės B1 vertė nėra perskaičiuojama.

Rankinis apskaičiavimas

Galite rankiniu būdu perskaičiuoti darbo knygą paspausdami F9.

4. Daugeliu atvejų savo kodo pabaigoje vėl nustatysite skaičiavimus automatiškai. Norėdami tai pasiekti, paprasčiausiai pridėkite šią kodo eilutę.

Application.Calculation = xlCalculationAutomatic
Taip pat perskaitykite: