hi, I just found some strange behavior of COM object.
► _VERSION
"LuaRT 2.1.0"
excel = sys.COM('Excel.Application', true)
excel.activeSheet:Range("a1:c3").Offset(1, 0).Address
excel.activeSheet:Range("a1:c3").Offset(1).Address
"$A$1"
excel.activeSheet:Range("a1:c3").Offset(1, 1).Address
"$A$1"
excel.activeSheet:Range("a1:c3").Offset(1, nil).Address
"$A$1"
► excel.activeSheet:Range("a1:c3").Offset(2, 1).Address
"$A$2"
so parameter of Offset can not be zero, but can be nil. and result is always single cell
but in office VBA I got this:
Debug.Print 0, ActiveSheet.Range("a1:c3").Offset(1, 0).Address
Debug.Print ActiveSheet.Range("a1:c3").Offset(1).Address
Debug.Print 1, ActiveSheet.Range("a1:c3").Offset(1, 1).Address
Debug.Print 2, ActiveSheet.Range("a1:c3").Offset(2, 1).Address
0 $A$2:$C$4
$A$2:$C$4
1 $B$2:$D$4
2 $B$3:$D$5
so parameter of Offset can be zero (default), and result is offseted area
[Login to see the link]