Tämä opetusohjelma opettaa sinulle, kuinka luoda solukaavoja VBA: n avulla.
Kaavat VBA: ssa
VBA: n avulla voit kirjoittaa kaavoja suoraan alueille tai soluihin Excelissä. Se näyttää tältä:
123456789 | Alakaava_esimerkki ()'Määritä kovakoodattu kaava yhdelle solulleAlue ("b3"). Kaava = "= b1+b2"'Määritä joustava kaava solualueelleAlue ("d1: d100"). KaavaR1C1 = "= RC2+RC3"End Sub |
Sinun on tiedettävä kaksi Range -ominaisuutta:
- .Kaava - Luo tarkan kaavan (kovakoodatut soluviittaukset). Hyvä kaavan lisäämiseen yksittäiseen soluun.
- Kaava R1C1 - Luo joustavan kaavan. Hyvä lisätä kaavoja solualueelle, jossa soluviittausten pitäisi muuttua.
Yksinkertaisille kaavoille on hyvä käyttää .Formula -ominaisuutta. Kaiken muun osalta suosittelemme kuitenkin Makrotallennin…
Makrotallennin ja solukaavat
Makrotallennin on Go-to-työkalumme solukaavojen kirjoittamiseen VBA: n avulla. Voit yksinkertaisesti:
- Aloita äänitys
- Kirjoita kaava (tarvittaessa suhteelliset / absoluuttiset viittaukset) soluun ja paina enter
- Lopeta tallennus
- Avaa VBA ja tarkista kaava, mukauta tarvittaessa ja kopioi+liitä koodi tarvittaessa.
Minusta se on paljon helpompi kaavan syöttäminen soluun kuin vastaavan kaavan kirjoittaminen VBA: han.
Huomaa pari asiaa:
- Makrotallennin käyttää aina .FormulaR1C1 -ominaisuutta
- Makrotallennin tunnistaa absoluuttiset vs. suhteelliset soluviitteet
VBA FormulaR1C1 -ominaisuus
FormulaR1C1-ominaisuus käyttää R1C1-tyylisiä soluviittauksia (toisin kuin tavallinen A1-tyyli, jonka olet tottunut näkemään Excelissä).
Tässä muutamia esimerkkejä:
12345678910111213141516171819 | AlakaavaR1C1_Examples ()'Viite D5 (ehdoton)'= 5 dollariaAlue ("a1"). KaavaR1C1 = "= R5C4"'Viite D5 (suhteellinen) solusta A1'= D5Alue ("a1"). KaavaR1C1 = "= R [4] C [3]"'Viite D5 (absoluuttinen rivi, suhteellinen sarake) solusta A1'= 5 dollariaAlue ("a1"). KaavaR1C1 = "= R5C [3]"'Viite D5 (suhteellinen rivi, absoluuttinen sarake) solusta A1'= D5 dollariaAlue ("a1"). KaavaR1C1 = "= R [4] C4"End Sub |
Huomaa, että R1C1-tyylisen soluviittauksen avulla voit asettaa absoluuttisia tai suhteellisia viittauksia.
Absoluuttiset viitteet
Standardin A1 merkinnöissä absoluuttinen viittaus näyttää tältä: "= $ C $ 2". R1C1 -merkinnässä se näyttää tältä: "= R2C3".
Absoluuttisen soluviittauksen luominen R1C1-tyyppisellä tyypillä:
- R + Rivinumero
- C + Sarakkeen numero
Esimerkki: R2C3 edustaa solua $ C $ 2 (C on kolmas sarake).
123 | 'Viite D5 (ehdoton)'= 5 dollariaAlue ("a1"). KaavaR1C1 = "= R5C4" |
Suhteelliset viitteet
Suhteelliset soluviittaukset ovat soluviittauksia, jotka ”liikkuvat”, kun kaavaa siirretään.
Standardin A1 merkinnässä ne näyttävät tältä: "= C2". R1C1 -merkinnöissä hakasulkeilla [] siirretään soluviittaus nykyisestä solusta.
Esimerkki: Kaavan “= R [1] C [1]” syöttäminen soluun B3 viittaisi soluun D4 (solu 1 rivi alla ja 1 sarake kaavasolun oikealle puolelle).
Käytä negatiivisia numeroita viittaamaan soluihin nykyisen solun yläpuolella tai vasemmalla puolella.
123 | 'Viite D5 (suhteellinen) solusta A1'= D5Alue ("a1"). KaavaR1C1 = "= R [4] C [3]" |
Sekalaisia viitteitä
Soluviittaukset voivat olla osittain suhteellisia ja osittain absoluuttisia. Esimerkki:
123 | 'Viite D5 (suhteellinen rivi, absoluuttinen sarake) solusta A1'= D5 dollariaAlue ("a1"). KaavaR1C1 = "= R [4] C4" |
VBA Formula Property
Kun asetat kaavoja näppäimellä.Kaavan omaisuus Käytät aina A1-tyylistä merkintätapaa. Syötä kaava aivan kuten Excel -soluun, paitsi lainausten ympäröimänä:
12 | 'Määritä kovakoodattu kaava yhdelle solulleAlue ("b3"). Kaava = "= b1+b2" |
VBA -kaavavinkit
Kaava muuttujalla
Kun työskentelet kaavojen kanssa VBA: ssa, on hyvin yleistä, että haluat käyttää muuttujia solukaavoissa. Jos haluat käyttää muuttujia, käytä & yhdistääksesi muuttujat muun kaavan merkkijonon kanssa. Esimerkki:
1234567 | Alakaava_muuttuja ()Dim colNum As LongcolNum = 4Alue ("a1"). KaavaR1C1 = "= R1C" & colNum & "+R2C" & colNumEnd Sub |
Kaavan lainaukset
Jos haluat lisätä lainauksen (“) kaavaan, kirjoita lainaus kahdesti (“ ”):
123 | Alimakro2 ()Alue ("B3"). KaavaR1C1 = "= TEKSTI (RC [-1]," "mm/pp/vvvvv" ")"End Sub |
Yksittäinen lainaus (“) tarkoittaa VBA: lle tekstimerkkijonon loppua. Lainausmerkkiä (“”) käsitellään lainauksena tekstijonossa.
Käytä samoin 3 lainausmerkkiä ("" ") ympäröimään merkkijono lainausmerkillä (")
12 | MsgBox "" "Käytä 3 ympäröidäksesi merkkijonon lainausmerkeillä" ""'Tämä tulostaa heti ikkunan |
Määritä solukaava merkkijonomuuttujalle
Voimme lukea tietyn solun tai alueen kaavan ja määrittää sen merkkijonomuuttujalle:
123 | 'Määritä solukaava muuttujalleDim strFormula merkkijononastrFormula = Alue ("B1") |
Eri tapoja lisätä kaavoja soluun
Tässä on vielä muutama esimerkki kaavan liittämisestä soluun:
- Määritä kaava suoraan
- Määritä kaavan sisältävä merkkijonomuuttuja
- Käytä muuttujia kaavan luomiseen
12345678910111213141516171819202122232425 | Sub MoreKaavaEsimerkkejä ()'Vaihtoehtoisia tapoja lisätä SUM -kaava'soluun B1''Dim strFormula merkkijononaHimmennä solua alueenahimmennä fromRow as Range, toRow as RangeAseta solu = alue ("B1")'Merkkijonon määrittäminen suoraancell.Formula = "= SUMMA (A1: A10)"'Merkkijonon tallentaminen muuttujaan"ja määrittäminen" Kaava "-ominaisuudellestrFormula = "= SUMMA (A1: A10)"cell.Formula = strFormula'Muuttujien käyttäminen merkkijonon rakentamiseen"ja määrittämällä se" Kaava "-ominaisuuteenfromRow = 1toRow = 10strFormula = "= SUMMA (A" & fromValue & ": A" & toValue & ")cell.Formula = strFormulaEnd Sub |
Päivitä kaavat
Muistutuksena voit päivittää kaavat käyttämällä Laske -komentoa:
1 | Laskea |
Päivitä yksittäinen kaava, alue tai koko laskentataulukko. Laske sen sijaan:
1 | Sheets ("Sheet1"). Alue ("a1: a10"). Laske |