Excel VBA -kaavat - lopullinen opas

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:

  1. Määritä kaava suoraan
  2. Määritä kaavan sisältävä merkkijonomuuttuja
  3. 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

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave