07. marts 2006 - 10:57Der er
4 kommentarer og 1 løsning
Format for TextBox
Jeg har problemer med følgende:
Når en bruger indtaster en værdi i en tekstboks vil jeg gerne have at tekstboksen ved "Lost Focus" formattere teksten med 1.000-tals seperator. Derfor har jeg indsat følgende i "Lost Focus" på cellen:
OCCost.Text = Format(Val(OCCost.Text), "0,##")
Dette virker fint nok, og den displayer nu værdien med 1.000 tals seperator. Men når jeg så besøger tekstboksen igen, og Lost Focus udføres igen ser den 1.000 tals seperatoren som decimal-seperator og "dividere" derfor tallet med 1.000 i Lost Focus rutinen.
Exempel:
1) 200000 indtastes i tekstboks 2) LostFocus rutine skriver nu tallet som 200.000 3) Hvis en ny lostfocus rutine udføres skrives ændres cellens værdi til 200, idet "." ses som deceimal og ikke 1.000 tals sep.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Ups - tilføjelse - "nissen flytter med" - når du anvender VAL - derfor:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Text = Format(TextBox1.Text, "###,##0.00")
tal1 = Val(cleanTal(TextBox1.Text)) End Sub Private Function cleanTal(tal) 'Fjerner 1000-. og ombytter , med . Dim f, nytal nytal = "" For f = 1 To Len(tal) If Mid(tal, f, 1) <> "." Then If Mid(tal, f, 1) = "," Then nytal = nytal + "." Else nytal = nytal + Mid(tal, f, 1) End If End If Next f cleanTal = nytal End Function
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.