Läsa värden ur en cell med VBA

Fem olika cellvärden

VBA-tipset denna gång handlar om vad vi kan läsa ut för värden från en cell. En cell har fem olika värden, som kan vara bra att känna till: Text, Value, Value2, Formula och FormulaLocal. Nedan finns formler i de gulmarkerade cellerna. I de gröna fälten nedan visas de olika värdena för respektive gult fält.

Ladda ner exempelfilen här

Formula och FormulaLocal

Formula respektive FormulaLocal är lätta att förstå. I det gröna fältet till vänster ser vi formeln ”=B5+B6”. Den ser likadan ut oavsett vilket språk vi har inställt på datorn. Men i det gröna fältet till höger ser vi skillnaden. Formula är den engelska varianten av funktionen och FormulaLocal på min dator ger den svenska varianten.

Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-kurser i Excel & Office-paketet

Value och Value2

Slutdatumet i exemplet är 2020-03-04. Ett datum är dock egentligen ett tal som visas med en datumformatering. Value ger oss datumet med formatering medan Value2 ger oss talet för datumet. När det gäller summeringen i kolumn F blir det ingen skillnad, för det finns ingen formatering.

Text

Text är det som vi faktiskt uppfattar med ögat. I det gula fältet i B-kolumnen ser vi ett datum och detta ser vi som Text i det gröna fältet i C-kolumnen. Vad är då skillnaden?

Skillnaden mellan de olika värdena

Skillnaden ser vi först om vi smalnar av B-kolumnen så att datumet inte kan visas utan förvandlas till brädgårdar. Om vi gör det först och därefter trycker på knappen så får vi se det som bilden nedan illustrerar. Text visar brädgårdarna, medan Value visar datumet vi skulle ha sett om cellen varit tillräckligt bred.

Koden som visar värdena ovan ser ut så här:

Public Sub VisaVarden()
    Blad1.Range("C12").Value = Blad1.Range("B7").Text
    Blad1.Range("C13").Value = Blad1.Range("B7").Value
    Blad1.Range("C14").Value = Blad1.Range("B7").Value2
    Blad1.Range("C15").Value = "'" & Blad1.Range("B7").Formula
    Blad1.Range("C16").Value = "'" & Blad1.Range("B7").FormulaLocal
    
    
    Blad1.Range("F12").Value = Blad1.Range("F8").Text
    Blad1.Range("F3").Value = Blad1.Range("F8").Value
    Blad1.Range("F14").Value = Blad1.Range("F8").Value2
    Blad1.Range("F15").Value = "'" & Blad1.Range("F8").Formula
    Blad1.Range("F16").Value = "'" & Blad1.Range("F8").FormulaLocal
End Sub

Gå en VBA-kurs

Lärarledd kurs: Excel VBA och makron i Stockholm City (e-kursen ingår också). Läs mer och boka

Online-kurs: Excel VBA och makron via officekurs.se

Du gillar kanske också...

Börja prenumerera idag!

Ta del av tips & tricks i Excel och Office en gång i månaden helt kostnadsfritt.

Grattis! Du kommer nu att få Excelbrevet varje månad helt gratis.