Denna handledning lär dig hur du interagerar med cellvärden med VBA.
Ange cellvärde
För att ställa in ett cellvärde, använd egenskapen Value för området Range eller Cells.
Range.Value & Cells.Value
Det finns två sätt att referera till cell (er) i VBA:
- Områdeobjekt - Område (“A2”). Värde
- Celler objekt - Celler (2,1). Värde
Med Range -objektet kan du referera till en cell med hjälp av standard A1 -notationen.
Detta kommer att ställa in intervallet A2: s värde = 1:
1 | Område ("A2"). Värde = 1 |
Cells -objektet låter dig referera till en cell med dess radnummer och kolumnnummer.
Detta ställer in intervall A2: s värde = 1:
1 | Celler (2,1). Värde = 1 |
Lägg märke till att du anger radnumret först:
1 | Celler (rad_nummer, kol_nummer) |
Ställ in flera cellers värden på en gång
Istället för att referera till en enda cell kan du referera till ett cellintervall och ändra alla cellvärden samtidigt:
1 | Område ("A2: A5"). Värde = 1 |
Ange cellvärde - text
I exemplen ovan anger vi cellvärdet lika med ett tal (1). Istället kan du ställa in cellvärdet som är lika med en textsträng. I VBA måste all text omges av citat:
1 | Område ("A2"). Värde = "Text" |
Om du inte omger texten med citat kommer VBA att tro att du refererar till en variabel …
Ange cellvärde - variabel
Du kan också ange ett cellvärde som är lika med en variabel
1234 | Dim strText som strängstrText = "Textsträng"Område ("A2"). Värde = strText |
Få cellvärde
Du kan få cellvärden med samma Value -egenskap som vi använde ovan.
Få ActiveCell -värde
För att få ActiveCell -värdet och visa det i en meddelanderuta:
1 | MsgBox ActiveCell.Value |
Tilldela cellvärde till variabel
För att få ett cellvärde och tilldela det till en variabel:
123 | Dim var som variantvar = intervall ("A1"). Värde |
Här använde vi en variabel av typen Variant. Variantvariabler kan acceptera alla typer av värden. Istället kan du använda en strängvariabel:
123 | Dim var som strängvar = intervall ("A1"). Värde |
En strängvariabel typ accepterar numeriska värden, men den lagrar siffrorna som text.
Om du vet att ditt cellvärde kommer att vara numeriskt kan du använda en dubbelvariabel (dubbelvariabler kan lagra decimalvärden):
123 | Dim var som Dubbelvar = intervall ("A1"). Värde |
Men om du försöker lagra ett cellvärde som innehåller text i en dubbel variabel får du ett felmeddelande om felaktig typ:
Andra exempel på cellvärde
Kopiera cellvärde
Det är enkelt att ställa in ett cellvärde som är lika med ett annat cellvärde (eller "Kopiera" ett cellvärde):
1 | Område ("A1"). Värde = intervall ("B1"). Värde |
Du kan till och med göra detta med cellområden (intervallerna måste ha samma storlek):
1 | Område ("A1: A5"). Värde = intervall ("B1: B5"). Värde |
Jämför cellvärden
Du kan jämföra cellvärden med hjälp av standardjämförelserna.
Testa om cellvärdena är lika:
1 | MsgBox -intervall ("A1"). Värde = intervall ("B1"). Värde |
Returnerar SANT om cellvärdena är lika. Annars FALSKT.
Du kan också skapa en If -sats för att jämföra cellvärden:
12345678910111213 | Om intervall ("A1"). Värde> intervall ("B1"). Värde sedanOmråde ("C1"). Värde = "Större än"Elseif Range ("A1"). Value = Range ("B1"). Value ThenOmråde ("C1"). Värde = "lika"AnnanOmråde ("C1"). Värde = "Mindre än"Avsluta om |
Du kan jämföra text på samma sätt (kom ihåg att VBA är skiftlägeskänsligt)