Stránky dotazů a odpovědí české a slovenské komunity uživatelů kancelářského balíku LibreOffice (více informací)

Zeptejte se
0

Formátovanie čísel pomocou makra

otázka položena 2019-02-20 19:27:44 +0200

gravatar pro Ator245

Dobrý deň,
pokúšam sa formátovať čísla pomocou makra, skúšam to podľa vzoru z pdf knihy BasicGuide_OOo3.2.0.

Môj upravený kód je:

Sub Main

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim NumberFormats As Object
Dim NumberFormatString As String
Dim NumberFormatId As Long
Dim LocalSettings As New com.sun.star.lang.Locale

Doc = ThisComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
Cell.Value = 23400.3523565
LocalSettings.Language = "sk"
LocalSettings.Country = "sk"
NumberFormats = Doc.NumberFormats
NumberFormatString = "# ##0,000"
NumberFormatId = NumberFormats.queryKey(NumberFormatString, LocalSettings, True)
If NumberFormatId = -1 Then
NumberFormatId = NumberFormats.addNew(NumberFormatString, LocalSettings)
End If
MsgBox NumberFormatId
Cell.NumberFormat = NumberFormatId

End Sub

Uvedený kód pracuje bezchybne iba prvý krát v novom súbore, každé ďalšie spustenie vyvolá chybové okno s textom:

BASIC chyba počas chodu. Vyskytla sa výnimka Type: com.sun.star.uno.RuntimeExceptionMessage:.

Ak súbor uložím a znova ho otvorím, stále to vyhodí chybu.

Originálny kód z pdf knihy má nastavené Language a Contry na en a us a NumberFormatString = "#,##0.000" a v tomto prípade to behá bez problémov stále. V LibreOffice mám nastavené užívateľské rozhranie aj národné nastavenie na slovenčinu. Skúšam to na Win10 a LibreOffice 6.1.4.2 aj 6.2.1.1.

Ďakujem za pomoc

editovat změnit štítky označit porušení pravidel uzavřít spojit smazat
0

otázka zodpovězena 2019-02-20 20:31:43 +0200

gravatar pro Ator245

To je naozaj zaujímavé, pretože vo Vašom súbore mi to funguje, v mojom nie. Skúsite pozrieť môj súbor? C:\fakepath\Makro format cisel.ods

editovat označit porušení pravidel smazat odkaz další

Komentáře

problém je v NumberFormatString = "# ##0,000" Formátovací kód jsem kopíroval z dialogu formátu buňky - pak to funguje. Pokud je tam normální mezera tak to nefunguje.

gravatar pro raalraal ( 2019-02-20 21:04:50 +0200 )editovat

Potvrdzujem, s klasickou medzerou to nefunguje, s formátom skopírovaným z dialógu formátu bunky áno. Toto ma nenapadlo vyskúšať. Ďakujem veľmi pekne za pomoc.

gravatar pro Ator245Ator245 ( 2019-02-20 21:15:16 +0200 )editovat
0

otázka zodpovězena 2019-02-20 19:55:55 +0200

gravatar pro raal

Toto makro mi funguje: C:\fakepath\FormatMakro_ask.ods

Verze: 6.0.7.3 a Version: 6.3.0.0.alpha0+ Build ID: 465939feb0e9c382e5581b53b72008979ece4807 CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;

editovat označit porušení pravidel smazat odkaz další
Přihlásit/Zaregistrovat se pro zadání odpovědi
Pokud odpověď řeší váš dotaz, označte ji jako správnou (ikona zaškrtnutí nalevo), odpovědnu tím značně zpřehledníte.

Nástroje pro otázky

1 sledující

Statistika

Otázka položena: 2019-02-20 19:27:44 +0200

Přečtena: 26 krát

Naposledy aktualizována: Feb 20