[SOLVED] Wstawianie formuły do komórki

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
Emart22
Posty: 20
Rejestracja: sob sty 11, 2014 11:29 pm

[SOLVED] Wstawianie formuły do komórki

Post autor: Emart22 »

Witam
Nie wiem dlaczego nie działa wstawianie formuły do komórki za pomocą makra. Oto kod:

Kod: Zaznacz cały

Sub Main
	oSheet = thisComponent.Sheets.getByName("Arkusz1")
 	oCell = oSheet.getCellByPosition(0,0)
 	oCell.setFormula("=Suma(A2+A3)")
End Sub
Niby proste a nie mogę ogarnąć. Jeżeli we wstawionej formule skasuję jakikolwiek znak i wstawię go tam znowu wtedy formuła działa. Proszę o wyjaśnienie
Załączniki
Test.ods
(10.29 KiB) Pobrany 186 razy
OpenOffice 4.0.1 Windows 8.1
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Wstawianie formuły do komórki

Post autor: belstar »

Emart22 pisze:Nie wiem dlaczego nie działa wstawianie formuły do komórki za pomocą makra.
W tym przypadku musisz podawać angielskie odpowiedniki nazw funkcji

Kod: Zaznacz cały

    Sub Main
       oSheet = thisComponent.Sheets.getByName("Arkusz1")
       oCell = oSheet.getCellByPosition(0,0)
       oCell.setFormula("=Sum(A2+A3)")
    End Sub
Jeśli chcesz podawać polskie nazwy musisz użyć metody setFormulaLocal, przy założeniu że używasz polskiej lokalizacji.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Emart22
Posty: 20
Rejestracja: sob sty 11, 2014 11:29 pm

Re: Wstawianie formuły do komórki

Post autor: Emart22 »

Rzeczywiście z angielską wersją nazw działa. Ale nie działa setFormulaLocal, czyli rozumiem, że nie używam polskiej lokalizacji- gdzie się to ustawia?
OpenOffice 4.0.1 Windows 8.1
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Wstawianie formuły do komórki

Post autor: belstar »

Jeżeli interfejs jest po polsku to jest polska lokalizacja.
W poprzednim poście wprowadziłem cię w błąd - sorry, ale pisałem z pamięci a z tą bywa różnie. Faktem jest że nie ma metody setFormulaLocal, ale jest właściwość FormulaLocal i w tym przypadku kod powinien wyglądać tak:

Kod: Zaznacz cały

Sub Main
       oSheet = thisComponent.Sheets.getByName("Arkusz1")
       oCell = oSheet.getCellByPosition(0,0)
       oCell.Formulalocal = "=Suma(A2+A3)"
    End Sub
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Emart22
Posty: 20
Rejestracja: sob sty 11, 2014 11:29 pm

Re: Wstawianie formuły do komórki

Post autor: Emart22 »

Wielkie dzięki za pomoc
OpenOffice 4.0.1 Windows 8.1
ODPOWIEDZ