02. maj 2006 - 11:41Der er
8 kommentarer og 2 løsninger
Et spørgsmål om løkke
Jeg vil gerne have en løkke til at gennemføre nedenstående kode. Koden skal finde tallene fra 1-4 i textbox 1-4. Når tallet er fundet skal det erstattes med teksten "Her var nr.: fx 1" Jeg kan desværre ikke selv formulere løkken. Kan du? Option Explicit
Private Sub Command1_Click() On Error Resume Next If Text1.Text = 1 Then Text1.Text = "Her var nr.: 1" Else
If Text2.Text = 1 Then Text2.Text = "Her var nr.: 1" Else
If Text3.Text = 1 Then Text3.Text = "Her var nr.: 1" Else
If Text4.Text = 1 Then Text4.Text = "Her var nr.: 1"
End If End If End If End If If Text1.Text = 2 Then Text1.Text = "Her var nr.: 2"
End Sub
Private Sub Form_Load() Text1.Text = 4 Text2.Text = 2 Text3.Text = 1 Text4.Text = 3 End Sub
Jeg kan se, at det kan klares med følgende: men er der ikke noget mere elegant? Option Explicit
Private Sub Command1_Click() On Error Resume Next Dim tal As Integer tal = 0 Do Until tal = Text1.Text tal = tal + 1 Loop Text1.Text = "Tallet var " & tal tal = 0 Do Until tal = Text2.Text tal = tal + 1 Loop Text2.Text = "Tallet var " & tal tal = 0 Do Until tal = Text3.Text tal = tal + 1 Loop Text3.Text = "Tallet var " & tal End Sub
Private Sub CommandButton1_Click() Dim tbC As Control, f As Integer, p For f = 1 To 4 Set tbC = Me.Controls("Textbox" + CStr(f)) p = InStr("1234", tbC.Text) If p > 0 Then tbC.Text = "Her er " + CStr(p) End If Next f End Sub
>Hej supertekst. Din kode virker. Men egentlig skal jeg bruge fra textbox fra 1 til 12, det glemte jeg bare at skríve, og når jeg ændrer din kode til: For f = 1 To 12 Set tbC = Me.Controls("Textbox" + CStr(f)) p = InStr("123456789101112", tbC.Text) får jeg 1 i den box hvor der skulle være 12 og ingen nr. 11 men nr. 12 i box 11. Resten er rigtigt. Skal der en separator til, når tallene passerer 10? Gider du lige rette koden til?
Private Sub CommandButton1_Click() Dim tbC As Control, f As Integer, p For f = 1 To 12 Set tbC = Me.Controls("Textbox" + CStr(f)) p = tbC.Text If p <> "" Then tbC.Text = "Her er " + p End If Next f End Sub
>OK, jeg regnede ikke med at det var nødvendigt. Men supertekst her er hele koden, så hvis du lige gider at kopiere den over til dig selv, kan du se, at der intet sker.
Option Explicit
Private Sub CommandButton1_Click() Dim tbC As Control, f As Integer, p For f = 1 To 12 Set tbC = Me.Controls("Textbox" + CStr(f)) p = tbC.Text If p <> "" Then tbC.Text = "Her er " + p End If Next f End Sub
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.