View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tim Zych[_3_] Tim Zych[_3_] is offline
external usenet poster
 
Posts: 2
Default 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


.