See õpetus õpetab teile, kuidas luua VBA abil lahtrivalemeid.
Valemid VBA -s
VBA abil saate Exceli valemid kirjutada otse vahemikku või lahtrisse. See näeb välja selline:
123456789 | Alamvalem_näide ()'Määrake kindlale lahtrile valem, mis on kodeeritudVahemik ("b3"). Valem = "= b1+b2""Määrake lahtrivahemikule paindlik valemVahemik ("d1: d100"). ValemR1C1 = "= RC2+RC3"End Sub |
Vahemiku omadusi, mida peate teadma, on kaks:
- .Vormel - loob täpse valemi (kõvakodeeritud lahtriviited). Hea valemi lisamiseks ühele lahtrile.
- .Vormel R1C1 - loob paindliku valemi. Sobib valemite lisamiseks lahtrite vahemikku, kus lahtriviited peaksid muutuma.
Lihtsate valemite puhul on hea kasutada atribuuti .Formula. Kõige muu puhul soovitame siiski kasutada Makrosalvesti…
Makrosalvesti ja lahtrivalemid
Makrosalvesti on meie tööriist tööriistade valemite kirjutamiseks VBA abil. Saate lihtsalt:
- Alusta salvestamist
- Sisestage lahtrisse valem (vajadusel suhtelise / absoluutse viitega) ja vajutage sisestusklahvi
- Lõpetage salvestamine
- Avage VBA ja vaadake valem üle, kohandades vastavalt vajadusele ja kopeerides+kleepides koodi sinna, kuhu vaja.
Ma leian, et on palju lihtsam valemi lahtrisse sisestamiseks kui vastava valemi sisestamiseks VBA -sse.
Pange tähele paari asja:
- Makrosalvesti kasutab alati atribuuti .FormulaR1C1
- Makrosalvesti tunneb ära absoluutsed ja suhtelised lahtriviited
VBA FormulaR1C1 atribuut
Atribuut FormulaR1C1 kasutab lahtrite viitamist R1C1-stiilis (erinevalt tavalisest A1-stiilist, mida olete Excelis harjunud nägema).
siin on mõned näidised:
12345678910111213141516171819 | Alamvalem R1C1_Examples ()'Viide D5 (absoluutne)'= 5 D $ dollaritVahemik ("a1"). ValemR1C1 = "= R5C4"„Viide D5 (suhteline) lahtrist A1'= D5Vahemik ("a1"). ValemR1C1 = "= R [4] C [3]"„Viide D5 (absoluutne rida, suhteline veerg) lahtrist A1'= 5 dollaritVahemik ("a1"). ValemR1C1 = "= R5C [3]"„Viide D5 (suhteline rida, absoluutne veerg) lahtrist A1'= D5 dollaritVahemik ("a1"). ValemR1C1 = "= R [4] C4"End Sub |
Pange tähele, et R1C1-stiilis lahtriviide võimaldab teil määrata absoluutsed või suhtelised viited.
Absoluutsed viited
Tavalises A1 märgistuses näeb absoluutne viide välja selline: "= $ C $ 2". Märgistuses R1C1 näeb see välja selline: “= R2C3”.
Absoluutse lahtri viite loomiseks, kasutades R1C1-tüüpi tüüpi:
- R + rea number
- C + veeru number
Näide: R2C3 tähistab lahtrit $ C $ 2 (C on kolmas veerg).
123 | 'Viide D5 (absoluutne)'= 5 D $ dollaritVahemik ("a1"). ValemR1C1 = "= R5C4" |
Suhtelised viited
Suhtelised lahtriviited on lahtriviited, mis “liiguvad” valemi liigutamisel.
Tavalises A1 märgistuses näevad need välja sellised: “= C2”. Märkimisel R1C1 kasutate sulgusid [], et nihutada lahtri viide praegusest lahtrist.
Näide: valemi „= R [1] C [1]” sisestamine lahtrisse B3 viitaks lahtrile D4 (lahter 1 rida allpool ja 1 veerg valemilahtrist paremal).
Kasutage negatiivseid numbreid lahtrite viitamiseks praegusest lahtrist ülal või vasakul.
123 | „Viide D5 (suhteline) lahtrist A1'= D5Vahemik ("a1"). ValemR1C1 = "= R [4] C [3]" |
Segatud viited
Lahtrite viited võivad olla osaliselt suhtelised ja osaliselt absoluutsed. Näide:
123 | „Viide D5 (suhteline rida, absoluutne veerg) lahtrist A1'= D5 dollaritVahemik ("a1"). ValemR1C1 = "= R [4] C4" |
VBA valemivara
Valemite määramisel klahviga.Valemi vara kasutate alati A1-stiilis märkeid. Sisestage valem täpselt nagu Exceli lahtrisse, välja arvatud tsitaadid:
12 | 'Määrake kindlale lahtrile valem, mis on kodeeritudVahemik ("b3"). Valem = "= b1+b2" |
VBA valemi näpunäited
Valem muutujaga
VBA -s valemitega töötades on väga levinud soov kasutada lahtrivalemites muutujaid. Muutujate kasutamiseks kasutage &, et kombineerida muutujad ülejäänud valemitringiga. Näide:
1234567 | Alamvalem_muutuja ()Pimendav veerg nii kauakolonn = 4Vahemik ("a1"). ValemR1C1 = "= R1C" & colNum & "+R2C" & colNumEnd Sub |
Vormeli tsitaadid
Kui peate valemisse lisama hinnapakkumise (“), sisestage tsitaat kaks korda (“ ”):
123 | Alammakro2 ()Vahemik ("B3"). ValemR1C1 = "= TEKST (RC [-1]," "mm/pp/aaaa" ")"End Sub |
Üks tsitaat (“) tähistab VBA -le tekstistringi lõppu. Kahekordset tsitaati („”) käsitletakse tekstistringis tsitaadina.
Sarnaselt kasutage 3 jutumärki (“” ”), et ümbritseda string jutumärgiga (“)
12 | MsgBox "" "Kasutage 3, et ümbritseda string jutumärkidega" ""'See prindib kohe akna |
Määrake lahtrivalem stringimuutujale
Me saame antud valemit antud lahtris või vahemikus lugeda ja määrata stringimuutujale:
123 | 'Määrake lahtrile valem muutujaleHämardage strFormula stringinastrFormula = Vahemik ("B1"). Valem |
Lahtrile valemite lisamise erinevad viisid
Siin on veel mõned näited valemi lahtrile määramiseks:
- Valemi otsene määramine
- Määratlege valemit sisaldav stringimuutuja
- Valemi loomiseks kasutage muutujaid
12345678910111213141516171819202122232425 | Alam MoreVormelNäited ()'SUM valemi lisamise alternatiivsed viisid'lahtrisse B1'Hämardage strFormula stringinaHämardage lahter vahemikunadim fromRow as Range, toRow as RangeMäära lahter = vahemik ("B1")'Stringi otsene määraminecell.Formula = "= SUM (A1: A10)"'Stringi salvestamine muutujale'ja varale "Valem" määraminestrFormula = "= SUM (A1: A10)"rakk.Vormel = strFormula'Muutujate kasutamine stringi loomiseks"ja määrates selle atribuudile" Vormel "fromRow = 1rida = 10strFormula = "= SUM (A" & fromValue & ": A" & toValue & ")rakk.Vormel = strFormulaEnd Sub |
Valemite värskendamine
Tuletame meelde, et valemite värskendamiseks võite kasutada käsku Arvuta:
1 | Arvutama |
Üksiku valemi, vahemiku või kogu töölehe värskendamiseks kasutage. Arvutage selle asemel:
1 | Arvutustabelid ("leht 1"). Vahemik ("a1: a10"). Arvutage |