Excel VBA -formler - Den ultimative vejledning

Denne vejledning lærer dig, hvordan du opretter celleformler ved hjælp af VBA.

Formler i VBA

Ved hjælp af VBA kan du skrive formler direkte til områder eller celler i Excel. Det ser sådan ud:

123456789 Underformel_eksempel ()'Tildel en hårdkodet formel til en enkelt celleOmråde ("b3"). Formel = "= b1+b2"'Tildel en fleksibel formel til en række cellerOmråde ("d1: d100"). FormulaR1C1 = "= RC2+RC3"Afslut Sub

Der er to Range -egenskaber, du skal kende:

  • .Formel - Opretter en nøjagtig formel (hårdkodede cellereferencer). God til at tilføje en formel til en enkelt celle.
  • .FormelR1C1 - Opretter en fleksibel formel. God til at tilføje formler til en række celler, hvor cellereferencer skal ændre sig.

For enkle formler er det fint at bruge egenskaben .Formula. For alt andet anbefaler vi dog at bruge Makrooptager

Makrooptager og celleformler

Makrooptageren er vores værktøj til at skrive celleformler med VBA. Du kan simpelthen:

  • Start optagelse
  • Indtast formlen (med relative / absolutte referencer efter behov) i cellen, og tryk på enter
  • Stop optagelsen
  • Åbn VBA og gennemgå formlen, tilpas efter behov og kopier+indsæt koden, hvor det er nødvendigt.

Jeg finder det meget nemmere at indtaste en formel i en celle end at skrive den tilsvarende formel i VBA.

Læg mærke til et par ting:

  • Makrooptageren vil altid bruge egenskaben .FormulaR1C1
  • Makrooptageren genkender absolutte vs. relative cellereferencer

VBA FormulaR1C1 ejendom

FormulaR1C1-egenskaben bruger cellehenvisning i R1C1-stil (i modsætning til den standard A1-stil, du er vant til at se i Excel).

Her er nogle eksempler:

12345678910111213141516171819 UnderformelR1C1_Examples ()'Reference D5 (absolut)'= $ D $ 5Område ("a1"). FormulaR1C1 = "= R5C4"'Reference D5 (relativ) fra celle A1'= D5Område ("a1"). FormulaR1C1 = "= R [4] C [3]"'Reference D5 (absolut række, relativ kolonne) fra celle A1'= D $ 5Område ("a1"). FormulaR1C1 = "= R5C [3]"'Reference D5 (relativ række, absolut kolonne) fra celle A1'= $ D5Område ("a1"). FormulaR1C1 = "= R [4] C4"Afslut Sub

Bemærk, at cellehenvisningen i R1C1-stil giver dig mulighed for at angive absolutte eller relative referencer.

Absolutte referencer

I standard A1 -notation ser en absolut reference sådan ud: “= $ C $ 2”. I R1C1 -notation ser det sådan ud: “= R2C3”.

Sådan opretter du en absolut cellereference ved hjælp af type R1C1:

  • R + rækkenummer
  • C + kolonnenummer

Eksempel: R2C3 repræsenterer celle $ C $ 2 (C er den tredje kolonne).

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

Relative referencer

Relative cellereferencer er cellereferencer, der "bevæger sig", når formlen flyttes.

I standard A1 -notation ser de sådan ud: “= C2”. I R1C1 -notation bruger du parenteser [] til at udligne cellereferencen fra den aktuelle celle.

Eksempel: Indtastning af formel “= R [1] C [1]” i celle B3 vil referere til celle D4 (cellen 1 række herunder og 1 kolonne til højre for formelcellen).

Brug negative tal til at henvise til celler over eller til venstre for den aktuelle celle.

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

Blandede referencer

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

123 'Reference D5 (relativ række, absolut kolonne) fra celle A1'= $ D5Område ("a1"). FormulaR1C1 = "= R [4] C4"

VBA Formula Property

Ved indstilling af formler med.Formel ejendom du vil altid bruge A1-stil notation. Du indtaster formlen, ligesom du ville i en Excel -celle, undtagen omgivet af citater:

12 'Tildel en hårdkodet formel til en enkelt celleOmråde ("b3"). Formel = "= b1+b2"

VBA Formel Tips

Formel med variabel

Når du arbejder med formler i VBA, er det meget almindeligt at ville bruge variabler inden for celleformlerne. For at bruge variabler skal du bruge & til at kombinere variablerne med resten af ​​formelstrengen. Eksempel:

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

Formel citater

Hvis du skal tilføje et tilbud (“) inden for en formel, skal du indtaste tilbudet to gange (“ ”):

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

Et enkelt citat (“) betyder for VBA slutningen på en tekststreng. Hvorimod et dobbelt citat (“”) behandles som et citat inden for tekststrengen.

På samme måde skal du bruge 3 anførselstegn (“” ”) til at omgive en streng med et anførselstegn (“)

12 MsgBox "" "Brug 3 til at omgive en streng med citater" ""'Dette udskriver øjeblikkeligt vindue

Tildel celleformel til strengvariabel

Vi kan læse formlen i en given celle eller et givet område og tildele den til en strengvariabel:

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

Forskellige måder at tilføje formler til en celle

Her er nogle flere eksempler på, hvordan du tildeler en formel til en celle:

  1. Tildel formel direkte
  2. Definer en strengvariabel, der indeholder formlen
  3. Brug variabler til at oprette formel
12345678910111213141516171819202122232425 Sub MoreFormulaExples ()'Alternative måder at tilføje SUM -formel på'til celle B1'Dim strFormula som strengDim celle som områdedæmp fraRække som rækkevidde, tilRække som rækkeviddeIndstil celle = område ("B1")'Direkte tildeling af en strengcell.Formula = "= SUM (A1: A10)"'Lagring af streng til en variabel'og tildeler ejendommen "Formula"strFormula = "= SUM (A1: A10)"cell.Formula = strFormula'Brug af variabler til at bygge en streng'og tildele det til ejendommen "Formula"fraRække = 1toRow = 10strFormula = "= SUM (A" & fromValue & ": A" & toValue & ")cell.Formula = strFormulaAfslut Sub

Opdater formler

Som en påmindelse, for at opdatere formler, kan du bruge kommandoen Beregn:

1 Beregn

For at opdatere enkelt formel, område eller hele regneark skal du bruge .Beregn i stedet:

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