View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein Rick Rothstein is offline
external usenet poster
 
Posts: 5,934
Default How to using Address in selected Range

First off, the Range wouldn't be replacing the Offset property, it would be
replacing the c.Offest reference (assuming the "c" from your For..Each
loop). Now, assuming the "c" from your For..Each loop is being used to
establish the row number, I think you **think** you are looking for this...

Range("B" & c.Row).Value

or, alternately, like this...

Cells(c.Row, "B").Value

HOWEVER, doing this may (more than likely if your are not careful) end up
referencing the wrong worksheet. The "c" in your For..Each loop
automatically references the specified range on the worksheet you specified
for it in the Set statement... on the other hand, the above alternates, as
constructed, will reference the indicated cell on the ActiveSheet... the
Range or Cells calls have no way of knowing you want to reference a
different worksheet unless you tell it that. So, in your given For..Each
loop, you would have to do what you ask this way...

k1 = c.Value + "|" & Sheets(SchShtName).Range("B" & c.Row).Value

or, alternately, like this...

k1 = c.Value + "|" & Sheets(SchShtName).Cells(c.Row, "B").Value

And, you would have to have the Sheet reference attached to the Range call
each time you used it. Personally, I would continue using Offset myself.

--
Rick (MVP - Excel)



"moonhk" wrote in message
...
Hi All

In below part of VBA, I am using offset to build k1 value. How to
using range("B" & row_value) replace offset (0,1) ?

Dim rngToSearch As Range, rngToCheck As Range
Dim SchShtRange As String
Dim SchShtName As String
Dim k1 As String

SchShtRange = "A1:A5"

SchShtName = "RangeA"

Set rngToSearch = Sheets(SchShtName).Range(SchShtRange) 'change to
suit

For Each c In rngToSearch
If c.Value < "" Then
k1 = c.Value + "|" & c.Offset(0,1).Value
...