Hvad betyder numberformat 109 ?

Brugerhjælp og support til makroer i LibreOffice Basic

Moderators: Lodahl, LarsBrandi

Post Reply
Ove Hansen
Posts: 41
Joined: 1. Dec 2011 11:34

Hvad betyder numberformat 109 ?

Post by Ove Hansen »

I denne måneds nyhedsbrev er der et eksempel på oprettelse af en kalender i Calc. En af sætningerne er:
the_cell.NumberFormat=109
Hvad betyder sætningen og værdien?

Jeg mener, der er en fejl i makroen, idet der ikke bliver skrevet et tal for dagen, men kun ###.
Jeg kan få det til at virke, hvis jeg i stedet for the_cell.Value=the_date skriver: the_cell.Value=d
Venlig hilsen
Ove Steen Hansen
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Re: Hvad betyder numberformat 109 ?

Post by Jens S »

Du kan kontrollere hvad NumberFormat = 109 betyder ved at markere en celle med en værdi og så køre denne lille makro:
[color=#40BF80]Sub Num
Nummer =ThisComponent.CurrentSelection
Nummer.NumberFormat = 109
End Sub[/color]
Tallet refererer til en intern formateringskode og så vidt jeg har undersøgt findes der ikke nogen for kun 'dagen'

[quote]Jeg mener, der er en fejl i makroen, idet der ikke bliver skrevet et tal for dagen, men kun ###.
Jeg kan få det til at virke, hvis jeg i stedet for the_cell.Value=the_date skriver: the_cell.Value=d[/quote]
Det er rigtig og slet bare linjen
the_cell.NumberFormat=109
Ove Hansen
Posts: 41
Joined: 1. Dec 2011 11:34

Re: Hvad betyder numberformat 109 ?

Post by Ove Hansen »

Tusind tak for svaret.
Venlig hilsen
Ove Steen Hansen
Lodahl
Posts: 1961
Joined: 14. Sep 2005 08:27
Location: Storkøbenhavn
Contact:

Re: Hvad betyder numberformat 109 ?

Post by Lodahl »

NumberFormat=109 betyder "Kun dagen".
Jeg tror ikke der findes en komplet oversigt over alle koder, men jeg forsøgte mig frem.
1) Indtastede en dato i cellen.
2) Valgte Formater - Celler
3) Indtastede "dd" i formateringsfeltet
4) OK

Herefter lavede jeg en lille rutine og debuggede mig frem til resultatet 109.
Men det er lidt hokus-pokus med de interne hardkodede formater.

Forskellen mellem the_cell.Value=the_date og the_cell.Value=d er at den første indsætter datoen (og viser kun dagen) hvor den anden bare indsætter d, som er loop-tælleren (heltal). Men begge løsninger er rigtige løsninger.

Når du i regneark ser ###### så betyder det bare at cellen ikke er bred nok til at vise indholdet.

Jeg håber du har fået makroen til at virke.
Med venlig hilsen

Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
Ove Hansen
Posts: 41
Joined: 1. Dec 2011 11:34

Re: Hvad betyder numberformat 109 ?

Post by Ove Hansen »

Tak for svaret. Makroen virker perfekt. Vh Ove
Venlig hilsen
Ove Steen Hansen
Post Reply