Avatar billede zkov82 Nybegynder
16. november 2005 - 18:01 Der er 9 kommentarer og
1 løsning

sammenlign med noget af en string (vba)

Hej,
jeg ønsker at sammenligne strenge i et array, med et udtryk.
dvs.

jeg vil fx vide om en streng fra arrayet starter med trk.

jeg har prøvet:

if arr(i) = trk% then msgbox ("yes")

Men det virker jo af gode grunde ikke....help?
Avatar billede kabbak Professor
16. november 2005 - 18:04 #1
if left(arr(i),3) = "trk" then msgbox ("yes")
Avatar billede plx Nybegynder
16. november 2005 - 18:05 #2
If InStr(arr(i), "trk") = 1 Then msgbox ("yes")
Avatar billede kabbak Professor
16. november 2005 - 18:10 #3
plx > så er placeringen af"trk" jo ligegyldig og ikke nødvendigvis i starten
Avatar billede plx Nybegynder
16. november 2005 - 18:22 #4
Jeg ved nu ikke, den evaluerer vel kun til true, hvis trk er på position 1
Avatar billede kabbak Professor
16. november 2005 - 18:29 #5
du har ret, sorry
Avatar billede sjh Nybegynder
17. november 2005 - 00:03 #6
ellers skal det vel bare være sådan..

  Const TextCompare = 1
  If InStr(1, arr(i), "trk", TextCompare) > 0 Then
    MsgBox ("yes")
  End If
Avatar billede bak Forsker
17. november 2005 - 08:00 #7
If arr(i) Like "trk*" Then MsgBox "yes"
Avatar billede martin_moth Mester
17. november 2005 - 17:05 #8
Med

Left()
Right()
Len()
Mid()
InStr()
InStrRev()
Trim()
Ltrim()
Rtrim()
LCase()
UCase()
Split()

kan du gøre ALT med strenge.

Læs om dem i hjælpen...

Hvis du bare skal tjekke om de tre første tegn er "trk", ville jeg bruge:

  If left(trim(arr(i)),3) = "tri" Then
    Msgbox "Yes"
  End if

Ovenstående er Case Sensitive. Er det ligemeget med store/små bogstaver, så brug

  If Lcase(left(arr(i),3)) = "tri" Then
    Msgbox "Yes"
  End if

Skal eventuelle mellemrum først i din string desuden fjernes, brug

  If Lcase(left(ltrim(arr(i)),3)) = "tri" Then
    Msgbox "Yes"
  End if
Avatar billede martin_moth Mester
17. november 2005 - 17:05 #9
Og skift "tri" ud med "trk" ;o)
Avatar billede martin_moth Mester
17. november 2005 - 17:06 #10
Jeg vrøvler. Glem ovenstående 2 indlæg. Læs dette:

Med

Left()
Right()
Len()
Mid()
InStr()
InStrRev()
Trim()
Ltrim()
Rtrim()
LCase()
UCase()
Split()

kan du gøre ALT med strenge.

Læs om dem i hjælpen...

Hvis du bare skal tjekke om de tre første tegn er "trk", ville jeg bruge:

  If left(arr(i),3) = "tri" Then
    Msgbox "Yes"
  End if

Ovenstående er Case Sensitive. Er det ligemeget med store/små bogstaver, så brug

  If Lcase(left(arr(i),3)) = "tri" Then
    Msgbox "Yes"
  End if

Skal eventuelle mellemrum først i din string desuden fjernes, brug

  If Lcase(left(ltrim(arr(i)),3)) = "tri" Then
    Msgbox "Yes"
  End if
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester