Excel VBA -formler - Den ultimata guiden

Denna handledning lär dig hur du skapar cellformler med VBA.

Formler i VBA

Med VBA kan du skriva formler direkt till intervall eller celler i Excel. Det ser ut så här:

123456789 Sub Formula_Example ()'Tilldela en hårdkodad formel till en enda cellOmråde ("b3"). Formel = "= b1+b2"'Tilldela en flexibel formel till ett cellintervallOmråde ("d1: d100"). FormulaR1C1 = "= RC2+RC3"Avsluta Sub

Det finns två Range -egenskaper du behöver känna till:

  • .Formel - Skapar en exakt formel (hårdkodade cellreferenser). Bra för att lägga till en formel till en enda cell.
  • .FormulaR1C1 - Skapar en flexibel formel. Bra för att lägga till formler till ett cellområde där cellreferenser bör ändras.

För enkla formler är det bra att använda egenskapen .Formula. För allt annat rekommenderar vi att du använder Makroinspelare

Makroinspelare och cellformler

Makroinspelaren är vårt verktyg för att skriva cellformler med VBA. Du kan helt enkelt:

  • Börja filma
  • Skriv in formeln (med relativa / absoluta referenser efter behov) i cellen och tryck på enter
  • Sluta spela in
  • Öppna VBA och granska formeln, anpassa efter behov och kopiera+klistra in koden där det behövs.

Jag finner det mycket enklare för att ange en formel i en cell än att skriva motsvarande formel i VBA.

Lägg märke till ett par saker:

  • Makroinspelaren använder alltid egenskapen .FormulaR1C1
  • Makroinspelaren känner igen absoluta vs relativa cellreferenser

VBA FormulaR1C1 egendom

Egenskapen FormulaR1C1 använder cellreferenser i R1C1-stil (i motsats till den vanliga A1-stilen du är van vid att se i Excel).

Här är några exempel:

12345678910111213141516171819 Sub FormulaR1C1_Examples ()'Referens D5 (Absolut)'= $ D $ 5Område ("a1"). FormulaR1C1 = "= R5C4"'Referens D5 (relativ) från cell A1'= D5Område ("a1"). FormulaR1C1 = "= R [4] C [3]"'Referens D5 (Absolut rad, relativ kolumn) från cell A1'= D $ 5Område ("a1"). FormulaR1C1 = "= R5C [3]"'Referens D5 (relativ rad, absolut kolumn) från cell A1'= $ D5Område ("a1"). FormulaR1C1 = "= R [4] C4"Avsluta Sub

Lägg märke till att cellreferensen i R1C1-stil låter dig ställa in absoluta eller relativa referenser.

Absoluta referenser

I standard A1 -notering ser en absolut referens ut så här: "= $ C $ 2". I R1C1 -notering ser det ut så här: “= R2C3”.

Så här skapar du en absolut cellreferens med R1C1-typ:

  • R + radnummer
  • C + Kolumnummer

Exempel: R2C3 skulle representera cell $ C $ 2 (C är den tredje kolumnen).

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

Relativa referenser

Relativa cellreferenser är cellreferenser som "rör sig" när formeln flyttas.

I standard A1 -notering ser de ut så här: “= C2”. I R1C1 -notering använder du parenteser [] för att kompensera cellreferensen från den aktuella cellen.

Exempel: Ange formel "= R [1] C [1]" i cell B3 skulle referera till cell D4 (cell 1 rad nedan och 1 kolumn till höger om formelcellen).

Använd negativa tal för att referera till celler ovanför eller till vänster om den aktuella cellen.

123 'Referens D5 (relativ) från cell A1'= D5Område ("a1"). FormulaR1C1 = "= R [4] C [3]"

Blandade referenser

Cellreferenser kan vara delvis relativa och delvis absoluta. Exempel:

123 'Referens D5 (relativ rad, absolut kolumn) från cell A1'= $ D5Område ("a1"). FormulaR1C1 = "= R [4] C4"

VBA Formula Property

När du ställer in formler med.Formula Property du kommer alltid att använda A1-stil notation. Du anger formeln precis som i en Excel -cell, förutom omgiven av citat:

12 'Tilldela en hårdkodad formel till en enda cellOmråde ("b3"). Formel = "= b1+b2"

VBA Formel Tips

Formel med variabel

När du arbetar med formler i VBA är det väldigt vanligt att du vill använda variabler i cellformlerna. För att använda variabler använder du & för att kombinera variablerna med resten av formelsträngen. Exempel:

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

Formelcitat

Om du behöver lägga till en offert (“) inom en formel, ange offerten två gånger (“ ”):

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

En enda citat (“) betyder för VBA slutet på en textsträng. Medan en dubbelcitat (””) behandlas som ett citat inom textsträngen.

Använd på samma sätt 3 citattecken (“” ”) för att omge en sträng med ett citattecken (“)

12 MsgBox "" "Använd 3 för att omge en sträng med citat" ""'Detta kommer att skriva ut omedelbart fönster

Tilldela cellformel till strängvariabel

Vi kan läsa formeln i en given cell eller intervall och tilldela den till en strängvariabel:

123 'Tilldela cellformeln till variabelDim strFormula som strängstrFormula = Range ("B1"). Formel

Olika sätt att lägga till formler i en cell

Här är några fler exempel på hur du tilldelar en formel till en cell:

  1. Tilldela formeln direkt
  2. Definiera en strängvariabel som innehåller formeln
  3. Använd variabler för att skapa formel
12345678910111213141516171819202122232425 Sub MoreFormulaExamples ()'Alternativa sätt att lägga till SUM -formel'till cell B1'Dim strFormula som strängDim cell som Rangedimma frånRad som räckvidd, tillRad som räckviddAnge cell = intervall ("B1")'Direkt tilldela en strängcell.Formula = "= SUMMA (A1: A10)"'Lagring av sträng till en variabel'och tilldelar egenskapen "Formula"strFormula = "= SUMMA (A1: A10)"cell.Formel = strFormel'Använda variabler för att bygga en sträng'och tilldela den till egenskapen "Formula"frånRad = 1toRow = 10strFormula = "= SUMMA (A" & fromValue & ": A" & toValue & ")cell.Formel = strFormelAvsluta Sub

Uppdatera formler

Som en påminnelse, för att uppdatera formler, kan du använda kommandot Beräkna:

1 Beräkna

För att uppdatera enstaka formler, intervall eller hela kalkylblad använder du. Beräkna istället:

1 Ark ("Ark1"). Område ("a1: a10"). Beräkna

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave