Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam panowie i z góry przepraszam za potworka którego stworzyłem na podstawie materiałów znalezionych w sieci ale orłem w pisaniu skryptów/makr nigdy nie byłem. Chciałem ułatwić mojej kobicie tworzenie raportów ale chyba poległem. Nie wiem czemu to nie działa i nie wiem jak to zmusić do działania. Prawidłowo wykonuje 1 przebieg a podczas drugiego podświetal mi linie:
Doc.storeToURL(sURL,aArgs)
i krzyczy
" Błąd uruchomieniowy języka BASIC.
Wystąpił wyjątek
Type: com.sun.star.lang.IllegalArgumentException
Message: sequence element is not assignable by given value!"
Dodam jeszcze że oczywiście po wywaleniu pętli for i elementów od niej zależnych wszystko działa jak trzeba. A oto samo makro:
Sub Pdf_file Dim I, Doc As Object, dec As Object, Cel As Object Doc = ThisComponent For I = 1 To 247 dec = Doc.Sheets.getByName("Decyzja_nie_wyk") 'wyróżnienie arkusza nr1 Cel = dec.getCellByPosition(3,2) 'wyróżnienie komórki A1 Cel.setValue(I) dec = Doc.Sheets.getByName("Decyzja_wyk") 'wyróżnienie arkusza nr1 Cel = dec.getCellByPosition(3,2) 'wyróżnienie komórki A1 Cel.setValue(I) dec = Doc.Sheets.getByName("Decyzja_nie_wyk") Cel = dec.getCellByPosition(15, 0) sURL = "file:///home/kasia/Dokumenty/Praca/decyzje/"& Cel.getString()&".pdf" ' arguments for "FilterData" Dim aArg(7) As New com.sun.star.beans.PropertyValue aArg(0).Name = "RestrictPermissions" aArg(0).Value = True aArg(1).Name = "PermissionPassword" aArg(1).Value = "pass" aArg(2).Name = "Changes" aArg(2).Value = 0 aArg(3).Name = "EncryptFile" aArg(3).Value = True ' aArg(4).Name = "DocumentOpenPassword" 'aArg(4).Value = "pass"'hasło aArg(4).Name = "EnableCopyingOfContent" aArg(4).Value = False aArg(5).Name = "Printing" aArg(5).Value = 0 aArg(6).Name = "EnableTextAccessForAccessibilityTools" aArg(6).Value = False ' arguments for stroreToURL method Dim aArgs(1) As New com.sun.star.beans.PropertyValue aArgs(0).Name = "FilterName" aArgs(0).Value = "calc_pdf_Export" aArgs(1).Name = "FilterData" aArgs(1).Value = aArg Doc.storeToURL(sURL,aArgs) Next I End Sub
Edit:
Przespałem się z problemem i mnie oświeciło. Aż dziwne, że nikt tego nie wychwycił... należy przenieść linijki:
Dim aArg(7) As New com.sun.star.beans.PropertyValue
oraz
Dim aArgs(1) As New com.sun.star.beans.PropertyValue
ponad pętle for i działa jak ta lala. Jeszcze tylko ostatnie szlify i będzie gotowe :D
Ostatnio edytowany przez Bitels (2014-02-19 21:02:09)
Offline
Strony: 1