Strona 1 z 1

[SOLVED] Wstawianie formuły do komórki

: ndz cze 01, 2014 7:13 pm
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

Re: Wstawianie formuły do komórki

: ndz cze 01, 2014 8:49 pm
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.

Re: Wstawianie formuły do komórki

: ndz cze 01, 2014 10:07 pm
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?

Re: Wstawianie formuły do komórki

: ndz cze 01, 2014 10:49 pm
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

Re: Wstawianie formuły do komórki

: ndz cze 01, 2014 11:42 pm
autor: Emart22
Wielkie dzięki za pomoc