Avatar billede Poak Nybegynder
11. juni 2010 - 13:50 Der er 3 kommentarer

Søgning på mellemrum i VBA

Hej

Jeg har en problemstilling i VBA, som jeg ikke rigtigt har den store forstand til at løse, så håber der er en der kan hjælpe?

Programmet skal virke sådan at brugeren via en inputboks skal indtaste 3 værdier, disse tre værdier skal bruges til beregning, og derfor skal denne streng splittes op i 3 variabler, for tilsidst at komme et facit der udregnes på baggrund af de tre variabler.

inputtet til indput boksen kan fx se således ud:

1 5 10

Min umiddelbare ide til løsning vil være at man går ind og søger efter mellemrum, og splitter strengen op netop på baggrund af mellemrummene, men har ikke rigtigt nogen ide til hvordan dette gøres, eller om det overhovede er den smarteste måde?

Jeg har nogenlunde styr på inputbokse osv. og spørger derfor kun til en måde at opsplitte strengen i tre variabler :)

På forhånd mange tak
Avatar billede supertekst Ekspert
11. juni 2010 - 14:15 #1
Til inspiration:

Private Sub test()
Dim værdier As String
Dim tal As Variant

Dim tal1 As Long, tal2 As Long, tal3 As Long, reultat As Long
    værdier = InputBox("Indtast 3 værdier - adskilte af mellemrum")
   
    tal = Split(værdier, " ")
   
    For f = 0 To UBound(tal)
        aktuelletal = tal(f)  'kun for at du kan se tallene, hvis du stepper igennem koden med F8
    Next
   
    tal1 = tal(0)
    tal2 = tal(1)
    tal3 = tal(2)
   
    resultat = tal1 * tal2 * tal3
End Sub

og så velkommen til .....
Avatar billede Lene Fredborg Ekspert
11. juni 2010 - 14:16 #2
Du kan f.eks. gøre sådan, hvor strInput er den streng, der kommer fra din InputBox, og strVar1, 2 og 3 er de variabler, hvori du vil have værdierne gemt:

    Dim strVar1 As String
    Dim strVar2 As String
    Dim strVar3 As String
    Dim oArray() As String
   
    'Brug Split til at lave array af din input-streng, mellemrum (" ") som adskiller
    oArray = Split(strInput, " ")
   
    'Tildel værdierne fra array til dine variable
    'Array starter med 0, med mindre du har erklæret Option Base 1 i toppen af modulet
    strVar1 = oArray(0)
    strVar2 = oArray(1)
    strVar3 = oArray(2)
Avatar billede andera Novice
13. juni 2010 - 01:36 #3
Prøv at køre disse linier og se om de virker

svar = InputBox("indtast værdi")

tabel = Split(svar, " ")

MsgBox tabel(0)

lad os vide om det virker for dig.
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