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.
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