Gå til innhold

[Løst] Excel 2010 VBA Len variabel


Bigelk

Anbefalte innlegg

Skrevet

Hei,

 

Jeg har en inputbox hvor jeg legger inn et lokasjonsnummer.

 

Dette lokasjonsnummeret skal inneholde 6 siffer, jeg kjører en sjekk for å sjekke at lokasjonsnumeret som blir skrevet inn faktisk er på 6 siffer, men her får jeg ikke tilbake de verdiene jeg forventer

 

Hvis jeg deklarer variabelen som long gir Len() tilbake 4 hvis jeg bruker Double gir Len() tilbake 8

lokasjon gir tilbake 6

bytteLokasjon gir tilbake 4

 

 

        Dim bytteLokasjon as long, lokasjon as long
 
        lokasjon = ActiveCell.Value
        bytteLokasjon = Application.InputBox("Hvilken lokasjon vil du sjekke?", "Sjekk Lokasjon")
   
        MsgBox Len(bytteLokasjon) & " " & Len(ActiveCell.Value)' sjekker lengde
       
        If bytteLokasjon = False Then
            Exit Sub
        ElseIf bytteLokasjon = lokasjon Then
            Exit Sub
        ElseIf Len(bytteLokasjon) <> 6 Then
            MsgBox "Et lokasjonsnummer må inneholde 6 siffer"
            Exit Sub
        End If
 

 

Mvh

Torbjørn

Videoannonse
Annonse
Skrevet

Hei,

 

Det har jeg gjort, men da oppstår det ny utfordring.

Jeg bruker denne verdien for å finne en lokasjon i en liste, hvis den er deklarert som variant finner den ikke denne verdien..

Skrevet

Siden Len() er ment på String bør du da sikkert lese det inn som String i stedet for Long. Hvis du trenger å gjøre beregninger kan du heller konvertere til Long ved å bruke CLng(tekstverdi).

Skrevet (endret)

Hei på deg.

Hvis du bruker to variabler - en til å sjekke lengde og en til å søke, får du dekket begge behov.

Len returnerer helt korrekt antall byte i en long og en double.

Sånn omtrent:

 

Sub lokasjon()
        Dim Streng As String
        Dim bytteLokasjon As Long, lokasjon As Long
 
        lokasjon = ActiveCell.Value
        Streng = Application.InputBox("Hvilken lokasjon vil du sjekke?", "Sjekk Lokasjon")
        If Streng <> "False" Then
         bytteLokasjon = Streng
        End If
         
        MsgBox Len(Streng) & " " & Len(Str(ActiveCell)) ' sjekker lengde
       
        If Streng="False" Then
            Exit Sub
        ElseIf bytteLokasjon = lokasjon Then
            Exit Sub
        ElseIf Len(Streng) <> 6 Then
            MsgBox "Et lokasjonsnummer må inneholde 6 siffer"
            Exit Sub
        End If
End Sub
Endret av ExcelGuru
Skrevet

Kjempe! fungerer som en drøm!

Tusen takk for hjelpen alle sammen :)

 

 

 
lokasjon = ActiveCell.Value
        bytteLokasjon = Application.InputBox("Hvilken lokasjon vil du sjekke?", "Sjekk Lokasjon")
        
        If bytteLokasjon = False Then
            Exit Sub
        ElseIf bytteLokasjon = lokasjon Then
            Exit Sub
        ElseIf Len(CStr(bytteLokasjon)) <> 6 Then
            MsgBox "Et lokasjonsnummer må inneholde 6 siffer"
            Exit Sub
        End If
 

 

mvh

Torbjørn

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...