Makro Calc wklejające formułę z wieloma cudzysłowami
: pt mar 18, 2016 4:40 pm
Witam wszystkich!
Dopiero zaczynam przygodę z Calc, więc proszę o dużo wyrozumiałości. Zarejestrowałam makro, które wkleja wartość formuły. Dla formuł typu „=a1+a2” działa oczywiście poprawnie. Problem w tym, że moja formuła ma wiele cudzysłowów, tj. =JEŻELI(C12="Podaj typ";" ";JEŻELI(C12="zgłoszenie";"gwarant";JEŻELI(C12="zapytanie";"inne";C12))).
Wykonanie makra powoduje wyświetlanie komunikatu "nieoczekiwany symbol zg.", czyli makro czyta wszystko między dwoma pierwszymi cudzysłowami i nie widzi polskich liter (gdy nie ma polskich liter, to wyskakuje komunikat "nieoczekiwana wartość" ).
Proszę o podpowiedź jak to obejść. Byłoby miło gdyby tłumaczenie było łopatologiczne.
Formularz działa na zasadzie domina/schematu blokowego, a to makro ma „zerować” startowe wybrane komórki poprzez wpisanie tej pierwszej formuły.
sub jezeli
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$7"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=JEŻELI(C12="Podaj typ";" ";JEŻELI(C12="zgłoszenie";"gwarant";JEŻELI(C12="zapytanie";"inne";C12)))"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
Z góry dziękuję za pomoc, pozdrawiawm
Dopiero zaczynam przygodę z Calc, więc proszę o dużo wyrozumiałości. Zarejestrowałam makro, które wkleja wartość formuły. Dla formuł typu „=a1+a2” działa oczywiście poprawnie. Problem w tym, że moja formuła ma wiele cudzysłowów, tj. =JEŻELI(C12="Podaj typ";" ";JEŻELI(C12="zgłoszenie";"gwarant";JEŻELI(C12="zapytanie";"inne";C12))).
Wykonanie makra powoduje wyświetlanie komunikatu "nieoczekiwany symbol zg.", czyli makro czyta wszystko między dwoma pierwszymi cudzysłowami i nie widzi polskich liter (gdy nie ma polskich liter, to wyskakuje komunikat "nieoczekiwana wartość" ).
Proszę o podpowiedź jak to obejść. Byłoby miło gdyby tłumaczenie było łopatologiczne.
Formularz działa na zasadzie domina/schematu blokowego, a to makro ma „zerować” startowe wybrane komórki poprzez wpisanie tej pierwszej formuły.
sub jezeli
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$7"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=JEŻELI(C12="Podaj typ";" ";JEŻELI(C12="zgłoszenie";"gwarant";JEŻELI(C12="zapytanie";"inne";C12)))"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
Z góry dziękuję za pomoc, pozdrawiawm