Potrzebuję makro które wstawi już do istniejącej tabeli nową kolumnę np. pomiędzy kolumną "D" i "E" nową kolumnę "E" i do tej nowej kolumny skopiuje zawartość innej kolumny.
Próbowałem zarejestrować makro w AOO ale to nie chce ni cholibki zadziałać... da się to zrobić w ogóle (wstaw nowa kolumnę poprzez makro)?
Makro wstawiające nową kolumnę i kopiującą inną
Makro wstawiające nową kolumnę i kopiującą inną
OpenOffice 4.1.7 Windows 8.1
LibreOffice 7.1.0 Windows 8.1
Poza tym ciągle się uczę więc proszę o wyrozumiałość
LibreOffice 7.1.0 Windows 8.1
Poza tym ciągle się uczę więc proszę o wyrozumiałość
Re: Makro wstawiające nową kolumnę i kopiującą inną
Tu: https://forum.openoffice.org/en/forum/v ... 20&t=62397 masz przykład jak wstawić programowo wiersz. Z kolumną będzie analogicznie, ze zmianą obiektu Rows na Columns.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Makro wstawiające nową kolumnę i kopiującą inną
Czyli taki kod mi wystarczy:
lub
Natomiast z kopiowaniem wybranej kolumny do tej nowej mam problem. Udało mi się tylko taki kod wykombinować:
Działać działa ale mam wrażenie że można byłoby to lepiej zrobić...
Kod: Zaznacz cały
Sub DodajKolumna
rem W arkuszu AKTYWNYM
thisComponent.CurrentController.ActiveSheet.Columns.insertByIndex(5,1)
Kod: Zaznacz cały
Sub DodajKolumna
rem W arkuszu według INDEKSu
thisComponent.Sheets(0).Columns.insertByIndex(5,1)
End Sub
Kod: Zaznacz cały
Sub KopiujKolumna
skad = thisComponent.Sheets.getByIndex(0).getCellRangeByName("A1:A100").getRangeAddress()
dokad = thisComponent.Sheets.getByIndex(0).getCellByPosition(5,0).getCellAddress()
thisComponent.Sheets.getByIndex(0).copyRange( dokad , skad )
End Sub
OpenOffice 4.1.7 Windows 8.1
LibreOffice 7.1.0 Windows 8.1
Poza tym ciągle się uczę więc proszę o wyrozumiałość
LibreOffice 7.1.0 Windows 8.1
Poza tym ciągle się uczę więc proszę o wyrozumiałość
Re: Makro wstawiające nową kolumnę i kopiującą inną
Kopiowanie obszarów bardziej efektywnie da się przerowadzić operacją uno:copy z zestawu makropoleceń (tych prawdziwych, bo kod Basic zawiera zwykłe odwołania do API). Przykład użycia: https://forum.openoffice.org/pl/forum/v ... 54&p=22372
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)