Может, кто подскажет, макрос отказывается работать с большим диапазоном.

Автор Евгений Дуркин, 1 марта 2024, 10:33

0 Пользователи и 1 гость просматривают эту тему.

Евгений Дуркин

ОК.

Sub USOSD3_1
Dim oDoc As Object
Dim oSheet As Object
Dim oCell As Object
Dim oDesk As Object
Dim oFunction As Object
Dim oRange As Object
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oDesk = createUnoService ("com.sun.star.frame.Desktop")
oFunction = createUnoService("com.sun.star.sheet.FunctionAccess")
oRange = oSheet.getCellRangeByName("A2:A13200").getDataArray()
LastRow = oFunction.callFunction("COUNTA", Array(oRange))+1

Not OK.

Sub USOSD3_1
Dim oDoc As Object
Dim oSheet As Object
Dim oCell As Object
Dim oDesk As Object
Dim oFunction As Object
Dim oRange As Object
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oDesk = createUnoService ("com.sun.star.frame.Desktop")
oFunction = createUnoService("com.sun.star.sheet.FunctionAccess")
oRange = oSheet.getCellRangeByName("A2:A15000").getDataArray()
LastRow = oFunction.callFunction("COUNTA", Array(oRange))+1

bigor

А вы уверены, что первый вариант правильно считает? Он спотыкается на первой пустой ячейке. И что вы хотите от такой конструкции получить? последнюю заполненную?
Поддержать наш форум можно здесь