Strona 1 z 1

Wolno działające makro w nowej wersji (OO 4.0.1)

: pn lut 03, 2014 12:06 am
autor: MQs
Mam takie proste makro pokazujące/ukrywające wybrane kolumny i puste wiersze:

Kod: Zaznacz cały

sub ukryj

Dim Arkusz as Object
Dim Zmiana as Boolean
Dim i as Integer
Dim j as Integer

ThisComponent.enableAutomaticCalculation(FALSE)

Zmiana = NOT ThisComponent.Sheets(0).Columns(4).isVisible

For i = 0 to 12
	Arkusz = ThisComponent.Sheets(i)

	For j = 4 to 39
		If (j < 11 OR (j > 20 AND j < 23) OR j > 30) Then Arkusz.Columns(j).isVisible = Zmiana
	Next j

	For j = 5 to 31
		If Arkusz.getCellByPosition(1,j).String = "0" Then Arkusz.Rows(j).isVisible = Zmiana
	Next j
Next i

ThisComponent.enableAutomaticCalculation(TRUE)
End sub
Po przejściu z wersji 3.2, na której wykonanie tego makra zajmowało ~1s, na wersję 4.0.1 muszę czekać ok. 20s. Bez wyłączenia autoprzeliczania (enableAutomaticCalculation) trwa to jeszcze dłużej, bo wygląda to tak jakby przeliczał arkusze na żywca po każdym kroku (a arkusz nie jest lekki). Myślałem, że załatwię tym problem, ale widocznie jest coś jeszcze.