23. januar 2007 - 14:31Der er
20 kommentarer og 1 løsning
brugerdefineret formatering
Jeg har lavet en brugerdefineret formatering som ser ud som følger:
#.##0 "minutes"
Når der kun står, f.eks. 1 eller mindre så står der stadig 1 minutes. Kan det lade sig gøre at hvis der står 1 eller mindre så er formatering "minute" og ikke minutes
rem Indlægges i VBA (Alt+F11) i Ark1 Private Sub worksheet_change(ByVal Target As Excel.Range) kol = Target.Column ræk = Target.Row
If kol = 1 And Target.Value <> "" Then 'hvis der indtastes i kolonne A=1 Target.Select If Target.Value > 1 Then Selection.NumberFormat = "#.##0 ""minutes""" Else Selection.NumberFormat = "#.##0 ""minute""" End If End If End Sub
Kan det ikke laves, så det kun gælder for cellerne C20 og F20. Jeg har nemlig nogle lignende formateringer andre steder i arket, f.eks. Day og days, og time og times.
Private Sub worksheet_change(ByVal Target As Excel.Range) If Target.Address = "$C$20" Or Target.Address = "$F$20" And Target.Value <> "" Then 'hvis der indtastes i kolonne A=1 Target.Select If Target.Value > 1 Then Selection.NumberFormat = "#.##0 ""minutes""" Else Selection.NumberFormat = "#.##0 ""minute""" End If End If End Sub
Når jeg indtaster noget i f.eks. C20 kommer den med en run-time error '1004' Kan ikke angive egenskaben NumberFormat for klassen Range. Når jeg går ind i Visual Basic er denne række markeret med gul:
Skal man ikke bare ændre det til ###, så er der ingen decimaler. Ville gerne have at hvis der står 0, at der så også står 0 minutes. Altså det er kun når der står 1, at der skal stå minutter.
Jeg har også et problem med en runtime error '13' Type mismatch. Det er fordi jeg har lavet en makro til at nulstille nogle celler i arket med. Og når jeg så nulstiller kommer den op med runtime error. Linien som det er galt med er denne:
If Target.Address = "$C$20" Or Target.Address = "$F$20" And Target.Value <> "" Then 'hvis der indtastes i kolonne A=1
Jeg vil gerne have at der bare står 0 minutes, når jeg nulstiller, hvis det kan lade sig gøre.
Private Sub worksheet_change(ByVal Target As Excel.Range) Rem er celle-adressen præcis? If Target.Address = "$C$20" Or Target.Address = "$F$20" Then If Target.Value <> "" Then Target.Select If Target.Value > 1 Then Selection.NumberFormat = "#### ""minutes""" Else Selection.NumberFormat = "#### ""minute""" End If Else Target.Value = 0 Selection.NumberFormat = "0 ""minutes""" End If End If End Sub
Når jeg retter linien til det som du foreslår, kommer der til at stå f.eks. 2 minute og 1 minutes og når man taster 0 står der kun "minute" uden et 0 foran.
Har dog stadig problemer med 0, der står der kun minutes. Og så kommer den op med runtime-error 1004, når arket er låst. Jeg vil gerne have at man også kan rette i disse celler selovm arket er låst.
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.