2010年11月16日 星期二

取代 Range ("A65536").End (xlUp).Row

Ooo 長期以來,一直未有取代 Range ("A65536").End (xlUp).Row 的簡單句式,
今數據收集的工作很困難。只好在 Ooo 混用了 VBA 語法。

這兩天偶然發現兩個方法。記下來。

-1- 利用輔助列及COUNTBLANK,計出另一欄的最後一列。

PysCell = thiscomponent.sheets.getByName("Sheet1").getCellRangeByName("C1")
PysCell.formula = "=65536-COUNTBLANK(B1:B65536)"
print PysCell.value


-2- 利用 Function GetLastRow ,直接讀出某一欄的最後一列。

Sub Main
    LastRow=GetLastRow(1,0)
end sub

Function GetLastRow(x as integer,i as integer)as integer
    oSheet = ThisComponent.getSheets().getByIndex(i)
    oTargetCell = oSheet.getCellByPosition(x, 0)

        If IsNull(oTargetCell) then
            GetLastRow =oTargetCell.getRangeAddress.EndRow
        Else
            oCursor = oSheet.createCursorByRange(oTargetCell)
            oCursor.gotoEnd
            GetLastRow = oCursor.getRangeAddress.EndRow + 1
        End if

End Function

沒有留言: