jest sobie makro w Excelu, makro działa na zasadzie "wiersz po wierszu" czyli odczytywana jest wartość kilkunastu komórek z kolejnych wierszy Arkusza1 , dokonywane sa sprawdzenia/obliczenia i jesli warunki są spełnione - zapisywane są wartości do kilkunastu komórek w kolejnych wierszach Arkusza2 (początkowo pustego).
Nic specjalnego.
W Arkuszu1 jest ok 15 tys wierszy, wynikowo w Arkuszu2 powstaje ok 4 tys. wierszy.
Czas wykonania tego makra w Excelu to kilkanaście sekund (łącznie z sortowaniem wykonywanym na końcu).
Przerobiłem to makro pod OO (wersja 2.3.1) i czas wykonywania wynosi nieco ponad 3,5 minuty plus ok. 30s na sortowanie. Razem ponad 4 minuty- masakra
Zrobiłem testy, "zaremowałem" wpisywanie danych do Arkusza2 i okazało się że odczytanie 15 tys komórek z Arkusza1, wykonanie wszystkich sprawdzeń i obliczeń zajmuje ok 30 sekund - wychodzi na to że problem powstaje przy wpisywaniu wartości komórek w kolejnych wierszach do Arkusza2, które trwa ponad 3 minuty.
Pytanie brzmi - czy jest jakaś metoda/sposób/hint/ch_w_c aby dalo się przyspieszyć wprowadzanie danych do komórek? W tej chwili korzystam z funkcji:
Kod: Zaznacz cały
'*** tworzenie obiektu
oKomBo=ThisComponent
oKomBoSheet=oKomBo.Sheets.getByName("KomBo")
'*** "namiar" na konkretną komórkę
oKomBoCell=oKomBoSheet.getCellRangeByName("A" + CStr({kolejny wiersz- integer}))
'*** wstawienie wartosci do konkretnej komorki
oKomBoCell.setString({jakiś string})
'*** lub
oKomBoCell.setValue({jakaś liczba})
Dodam jeszcze że w opcjach odznaczyłem np. sprawdzanie pisowni i inne tego typu nieprzydatne dla mojego przypadku automatyczne funkcje.