rng(1,1) syntax doesn't work for set rng = arange.columns(1)
Doesn't rng(1,1) refers to the top left cell of rng?
The syntax works ok for every instance that I set a range,
except when I set a range using the columns property.
Dim rng1 As Range, rng2 As Range
Set rng1 = Range("B1:B3")
Set rng2 = Range("B1:D3").Columns(1)
Debug.Print rng1.Address
Debug.Print rng2.Address
Debug.Print rng1.Address = rng2.Address
Debug.Print rng1(1, 1).Address '<- OK
Debug.Print rng2(1, 1).Address '<- error
-----Original Message-----
In your code, the indices in rng(1,1) are trying to refer
the Column
number, and there is no Column numbered 1,1.
I don't think so. They refer to the first row, first
column of rng. Rng(R,C) refers to the Rth row and Cth
column of that range.
To see how the indices work, code
Set rng = Range("B2:X5").Columns
Debug.Print rng(3).Address
You will see that the index to the rng variable is
referring not to the
3rd cell of anything, but to the third Column, $C$2:$C$5.
And since this syntax is iterative, rng(3)(2) would refer
to the 4th
Column; i.e., the 2nd column starting from rng(3),
$D$2:$D$5.
Alan Beban
Tim Zych wrote:
Anybody know why this doesn't work?
Dim rng As Range
Set rng = Range("B2:X5").Columns(1)
Debug.Print rng.Address '<- this works
Debug.Print rng(1, 1).Address '<-this doesn't
Yes, rng.cells(1,1) does work. What's up with this?
XL2000, Win2000
.
|