Excel VBA -formler - Den ultimate guiden

Denne opplæringen vil lære deg hvordan du lager celleformler ved hjelp av VBA.

Formler i VBA

Ved å bruke VBA kan du skrive formler direkte til områder eller celler i Excel. Det ser slik ut:

123456789 Sub Formula_Example ()'Tilordne en hardkodet formel til en enkelt celleOmråde ("b3"). Formel = "= b1+b2"'Tilordne en fleksibel formel til en rekke cellerOmråde ("d1: d100"). FormulaR1C1 = "= RC2+RC3"Slutt Sub

Det er to Range -eiendommer du trenger å vite:

  • .Formel - Oppretter en eksakt formel (hardkodede cellereferanser). Bra for å legge en formel til en enkelt celle.
  • .FormulaR1C1 - Oppretter en fleksibel formel. Bra for å legge til formler i en rekke celler der cellereferanser bør endres.

For enkle formler er det greit å bruke .Formula -egenskapen. For alt annet anbefaler vi imidlertid å bruke Makroopptaker

Makroopptaker og celleformler

Makroopptakeren er vårt verktøy for skriving av celleformler med VBA. Du kan ganske enkelt:

  • Start opptak
  • Skriv inn formelen (med relative / absolutte referanser etter behov) i cellen og trykk enter
  • Stopp innspillingen
  • Åpne VBA og se gjennom formelen, tilpasse etter behov og kopiere+lime inn koden der det er nødvendig.

Jeg finner det mye enklere for å skrive inn en formel i en celle enn å skrive den tilsvarende formelen i VBA.

Legg merke til et par ting:

  • Makroopptakeren bruker alltid egenskapen .FormulaR1C1
  • Makroopptakeren gjenkjenner Absolutte kontra relative cellereferanser

VBA FormulaR1C1 -eiendom

FormulaR1C1-egenskapen bruker cellehenvisning i R1C1-stil (i motsetning til standard A1-stil du er vant til å se i Excel).

Her er noen eksempler:

12345678910111213141516171819 Sub FormulaR1C1_Examples ()'Referanse D5 (absolutt)'= $ D $ 5Område ("a1"). FormulaR1C1 = "= R5C4"'Referanse D5 (relativ) fra celle A1'= D5Område ("a1"). FormulaR1C1 = "= R [4] C [3]"'Referanse D5 (Absolutt rad, relativ kolonne) fra celle A1'= D $ 5Område ("a1"). FormulaR1C1 = "= R5C [3]"'Referanse D5 (relativ rad, absolutt kolonne) fra celle A1'= $ D5Område ("a1"). FormulaR1C1 = "= R [4] C4"Slutt Sub

Legg merke til at cellehenvisningen i R1C1-stil lar deg angi absolutte eller relative referanser.

Absolutte referanser

I standard A1 -notasjon ser en absolutt referanse slik ut: “= $ C $ 2”. I R1C1 -notasjon ser det slik ut: “= R2C3”.

Slik oppretter du en absolutt cellereferanse ved bruk av type R1C1:

  • R + radnummer
  • C + kolonnenummer

Eksempel: R2C3 vil representere celle $ C $ 2 (C er den tredje kolonnen).

123 'Referanse D5 (absolutt)'= $ D $ 5Område ("a1"). FormulaR1C1 = "= R5C4"

Relative referanser

Relative cellereferanser er cellereferanser som "beveger seg" når formelen flyttes.

I standard A1 -notasjon ser de slik ut: “= C2”. I R1C1 -notasjon bruker du parenteser [] til å forskyve cellereferansen fra den nåværende cellen.

Eksempel: Angi formel “= R [1] C [1]” i celle B3 vil referere til celle D4 (celle 1 rad nedenfor og 1 kolonne til høyre for formelcelle).

Bruk negative tall for å referere til celler over eller til venstre for den gjeldende cellen.

123 'Referanse D5 (relativ) fra celle A1'= D5Område ("a1"). FormulaR1C1 = "= R [4] C [3]"

Blandede referanser

Cellehenvisninger kan være delvis relative og delvis absolutte. Eksempel:

123 'Referanse D5 (relativ rad, absolutt kolonne) fra celle A1'= $ D5Område ("a1"). FormulaR1C1 = "= R [4] C4"

VBA Formula Property

Når du angir formler med.Formula Property du vil alltid bruke A1-stil notasjon. Du skriver inn formelen akkurat som du ville gjort i en Excel -celle, bortsett fra omgitt av sitater:

12 'Tilordne en hardkodet formel til en enkelt celleOmråde ("b3"). Formel = "= b1+b2"

VBA Formula Tips

Formel med variabel

Når du arbeider med formler i VBA, er det veldig vanlig å ønske å bruke variabler i celleformlene. For å bruke variabler bruker du & til å kombinere variablene med resten av formelstrengen. Eksempel:

1234567 Sub Formula_Variable ()Dim colNum As Longkolonn = 4Område ("a1"). FormulaR1C1 = "= R1C" & colNum & "+R2C" & colNumSlutt Sub

Formel sitater

Hvis du trenger å legge til et tilbud (“) i en formel, angir du sitatet to ganger (“ ”):

123 Submakro2 ()Område ("B3"). FormulaR1C1 = "= TEKST (RC [-1]," "mm/dd/åååå" ")"Slutt Sub

Et enkelt anførsel (“) betyr for VBA slutten av en tekststreng. Mens et dobbelt anførsel (“”) behandles som et sitat i tekststrengen.

På samme måte bruker du 3 anførselstegn (“” ”) for å omringe en streng med anførselstegn (“)

12 MsgBox "" "Bruk 3 for å omringe en streng med anførselstegn" ""'Dette vil skrive ut umiddelbart vindu

Tilordne celleformel til strengvariabel

Vi kan lese formelen i en gitt celle eller et gitt område og tilordne den til en strengvariabel:

123 'Tilordne celleformel til variabelDim strFormula som strengstrFormula = Range ("B1"). Formel

Ulike måter å legge formler til en celle

Her er noen flere eksempler på hvordan du tilordner en formel til en celle:

  1. Tilordne formelen direkte
  2. Definer en strengvariabel som inneholder formelen
  3. Bruk variabler for å lage formel
12345678910111213141516171819202122232425 Sub MoreFormulaExample ()'Alternative måter å legge til SUM -formel'til celle B1'Dim strFormula som strengDim celle som Rangedim fromRow as Range, toRow as RangeAngi celle = område ("B1")'Tilordne en streng direktecell.Formula = "= SUM (A1: A10)"'Lagre streng til en variabel'og tilordner eiendommen "Formula"strFormula = "= SUM (A1: A10)"cell.Formula = strFormula'Bruke variabler for å bygge en streng'og tilordne den eiendommen "Formula"fromRow = 1toRow = 10strFormula = "= SUM (A" & fromValue & ": A" & toValue & ")cell.Formula = strFormulaSlutt Sub

Oppdater formler

Som en påminnelse, for å oppdatere formler, kan du bruke kommandoen Beregn:

1 Regne ut

For å oppdatere enkeltformel, område eller hele regnearket, bruk .Beregn i stedet:

1 Ark ("Ark1"). Område ("a1: a10"). Beregn

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave