VBA -celleverdi - Få, sett eller endre

Denne opplæringen vil lære deg hvordan du samhandler med celleverdier ved hjelp av VBA.

Angi celleverdi

For å angi en celleverdi, bruk egenskapen Value for området eller celler.

Range.Value & Cells.Value

Det er to måter å referere til celle (r) i VBA:

  • Rekkevidde - Område (“A2”). Verdi
  • Celler Objekt - Celler (2,1). Verdi

Range -objektet lar deg referere til en celle ved hjelp av standard "A1" -notasjon.

Dette angir verdien til området A2 = 1:

1 Område ("A2"). Verdi = 1

Celle -objektet lar deg referere til en celle etter dets radnummer og kolonnummer.

Dette vil angi verdi A2 = 1:

1 Celler (2,1). Verdi = 1

Legg merke til at du angir radnummeret først:

1 Celler (rad -tall, kol -tall)

Sett flere cellers verdier samtidig

I stedet for å referere til en enkelt celle, kan du referere til en rekke celler og endre alle celleverdiene samtidig:

1 Område ("A2: A5"). Verdi = 1

Angi celleverdi - tekst

I eksemplene ovenfor setter vi celleverdien lik et tall (1). I stedet kan du angi celleverdien lik en tekststreng. I VBA må all tekst være omgitt av sitater:

1 Område ("A2"). Verdi = "Tekst"

Hvis du ikke omgir teksten med sitater, vil VBA tro at du refererer til en variabel …

Angi celleverdi - variabel

Du kan også angi en celleverdi lik en variabel

1234 Dim strText as StringstrText = "Tekststreng"Område ("A2"). Verdi = strText

Få celleverdi

Du kan få celleverdier ved å bruke den samme Value -egenskapen som vi brukte ovenfor.

Få ActiveCell -verdi

For å få ActiveCell -verdien og vise den i en meldingsboks:

1 MsgBox ActiveCell.Value

Tilordne celleverdi til variabel

For å få en celleverdi og tilordne den til en variabel:

123 Dim var som variantvar = Område ("A1"). Verdi

Her brukte vi en variabel av typen Variant. Variantvariabler kan godta alle typer verdier. I stedet kan du bruke en strengvariabeltype:

123 Dim var som strengvar = Område ("A1"). Verdi

En strengvariabeltype godtar numeriske verdier, men den lagrer tallene som tekst.

Hvis du vet at celleverdien din vil være numerisk, kan du bruke en dobbel variabel -type (doble variabler kan lagre desimalverdier):

123 Dim var som Doublevar = Område ("A1"). Verdi

Imidlertid, hvis du prøver å lagre en celleverdi som inneholder tekst i en dobbel variabel, får du en feilmelding:

Andre eksempler på celleverdi

Kopier celleverdi

Det er enkelt å angi en celleverdi lik en annen celleverdi (eller "Kopier" en celleverdi):

1 Område ("A1"). Verdi = Område ("B1"). Verdi

Du kan til og med gjøre dette med celleområder (områdene må ha samme størrelse):

1 Område ("A1: A5"). Verdi = Område ("B1: B5"). Verdi

Sammenlign celleverdier

Du kan sammenligne celleverdier ved hjelp av standard sammenligningsoperatorer.

Test om celleverdiene er like:

1 MsgBox -område ("A1"). Verdi = område ("B1"). Verdi

Returnerer SANN hvis celleverdiene er like. Ellers FALSK.

Du kan også opprette en If -setning for å sammenligne celleverdier:

12345678910111213 Hvis område ("A1"). Verdi> Område ("B1"). Verdi DeretterOmråde ("C1"). Verdi = "Større enn"Elseif -område ("A1"). Verdi = område ("B1"). Verdi DeretterOmråde ("C1"). Verdi = "lik"EllersOmråde ("C1"). Verdi = "Mindre enn"Slutt om

Du kan sammenligne tekst på samme måte (Husk at VBA er store og små bokstaver)

wave wave wave wave wave