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