27. december 2012 - 22:05Der er
2 kommentarer og 1 løsning
Beregn TextBox navn
Hej
Jeg har 20 textbokse med navne fra "txtTime1" til "txtTime20" Når jeg taster en værdi i en af dem eks. "txtTime7", så vil jeg undersøge den foregående tekstboks og den efterfølgende tekstboks som indeholder en værdi som er forskellig fra "". Det kan eksempelvis være at "txtTime6" og "txtTime5" er "" og at "txtTime4" indeholder en værdi. Her skal jeg have fat i værdien i "txtTime4". Jeg forestiller mig noget i retning af følgende program start.
If Me.ActiveControl.Name Like "txtTime*" Then vStr = Right(Me.ActiveControl.Name, 2) If IsNumeric(vStr) Then IntNum = CInt(vStr) - 1 NewTime = "txtTime" + IntNum Else vStr = Right(Me.ActiveControl.Name, 1) IntNum = CInt(vStr) - 1 NewTime = "txtTime" + IntNum End If End If
Herefter forestiller jeg mig noget i retning af en Do løkke hvor "NewTime" sættes lig Tekstboks nave "txtTime6", "txtTime5" og fortsætter til den rammer en "txtTimeX" med værdi.
Hvordan sætter jeg værdien af "NewTime" lig tekstboks nave og herefter finder dennes værdi?
Eks. - til inspiration - findTbVærdi() burde være i en funktion...
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) findTbMedVærdi CStr(Me.ActiveControl.Name) End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) findTbMedVærdi CStr(Me.ActiveControl.Name) End Sub Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean) findTbMedVærdi CStr(Me.ActiveControl.Name) End Sub Private Sub findTbMedVærdi(TbNavn) Dim nr As Integer, cc As Object, ccNavn As String, nyværdi værdi = Me.Controls(TbNavn).Value If værdi <> "" And InStr(TbNavn, "TextBox") = 1 Then nr = Mid(TbNavn, 8)
nr = nr + 1 ccNavn = "TextBox" & CStr(nr) ' Set cc = Me.Controls(ccNavn) nyværdi = cc.Value If nyværdi <> "" Then Stop End If End If End Sub Private Sub UserForm_activate() Me.TextBox3 = 333 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.