18. september 2003 - 08:54Der er
7 kommentarer og 1 løsning
Lad en sub kalde en anden sub afhængig af en variabel
Jeg har lavet en masse makroer samt nogle Userforms med tilhørende kode i Excel VBA.
Jeg vil gerne kunne starte en makro og deri erklære en variabel (eller lign.), som skal bruges i koden til Userform'en til at afgøre om den videre procedure skal være den ene eller der anden makro. ... men hver gang jeg når til den "Private Sub()" som tilhører Userform'en er min variabel "Empty" og det får jeg jo ikke meget ud af.
Kan I hjælpe mig ?
Jeg havde tænkt mig noget i retningen af: Sub Et() Var = 1 Userform.show End Sub
Sub To() Var = 2 Userform.show End Sub
Sub Tre() .. gør noget End sub
Sub Fire() .. gør noget andet End sub
..og i koden til Userform'en: Private Sub UserForm_activate() If Var = 1 Then Call Tre Else Call Fire End Sub
ocp har nu ret i, at du kan bruge en select case i stedet, hvis du synes det er smartere. Jeg synes din If-sætning ser lidt forkert ud - skal du ikke rettet til
Private Sub UserForm_activate() If Var = 1 Then Call Tre 'NB: Du behøver ikke skrive "Call" Else Call Fire 'NB: Du behøver ikke skrive "Call" End if End Sub
Eller som Select Case:
Select Case Var Case 1 Call Tre 'NB: Du behøver ikke skrive "Call" Case Else Call Fire 'NB: Du behøver ikke skrive "Call" End Select
Joh, ocp's Case-procedurer ser nok lidt mere elegante ud end mine If-Then-Else, men desværre er jeg (endnu :-) ikke dygtig nok til VBA til at forstå og udnytte case's
Select Case Variabel Case "Hej" Msgbox "Der står Hej i variablen" Case "Farvel" Msgbox "Der står Farvel i variablen" Case Else Msgbox "Der står hverken Hej eller Farvel i variablen - er står noget andet" End Select
Er PRÆCIS magen til
If Variabel = "Hej" Then Msgbox "Der står Hej i variablen" Elseif Variabel = "Farvel" Msgbox "Der står Farvel i variablen" Else Msgbox "Der står hverken Hej eller Farvel i variablen - er står noget andet" End If
Så sværere er Select Case altså ikke ;o)
Synes godt om
Ny brugerNybegynder
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.