Gå til innhold

[Løst] Excel 2010 VBA Len variabel


Bigelk

Anbefalte innlegg

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

Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar

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

Lenke til kommentar

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å
×
×
  • Opprett ny...