View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Using Offset on Variable Dinensioneds Object

set PMSMatchRange = Range(selection,Selection.end(xldown))
? PMSMatchRange.Address
$N$3:$N$122
? PMSMatchRange.Offset(10,1).Address
$O$13:$O$132
v = PMSMatchRange.Offset(10,1)
? typename(v)
Variant()


--
Regards,
Tom Ogilvy

"ExcelMonkey" wrote in message
...
I actually had it dimenionsioned as an Object. I then changed it to a

Range.
It stopped failing. However, when I hold my cursor over the variable
CorrectCompanyName in the statement:

CorrectCompanyName = PMSMatchRange.Offset(MatchNumber - 1, 1)

It says "Empty". What is even more bizzare is that even though its says
"Empty", the next line of code works fine:

ImportSheetVbNm.Range("C2").Offset(X - 1, 0) = CorrectCompanyName

That is the value in C2 (with offset) takes on the correct value. Odd.

EM


"Tom Ogilvy" wrote:

CorrectCompanyName = PMSMatchRange.Offset(MatchNumber - 1,

1)


Unless CorrectCompanyName is a variant, your code would probably attempt

to
assign an array to it and you would get an error.


--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote in message
...
I have passed a range of data to a variable (PMSMatchRange) that I

have
dimensioned as an Object. My first For Next loop below works

correctly.
However when I get into my second For Next Loop, I cannot seem to use

the
Offset Method on the PMSMatchRange variable:

CorrectCompanyName = PMSMatchRange.Offset(MatchNumber - 1, 1)

Is this because it is an object? Effectively I am tyring to do a

lookup
off
1 column to the right of the range that I passed to this variable.

Thanks

ImportSheetVbNm.Select
ImportSheetVbNm.Range("B2").Select
ImportSheetVbNm.Range(Selection, Selection.End(xlDown)).Select
NumPMSCodes = Selection.Rows.Count

vbPMSCodeList.Select
vbPMSCodeList.Range("A2").Select
vbPMSCodeList.Range(Selection, Selection.End(xlDown)).Select

Set PMSMatchRange = vbPMSCodeList.Range(Selection,
Selection.End(xlDown))

For X = 1 To NumPMSCodes
ImportSheetVbNm.Select
ImportSheetVbNm.Range("B2").Offset(X - 1, 0).Select
If IsError(Application.Match(ActiveCell.Value,

PMSMatchRange,
0)) Then
MsgBox ("You have PMS Codes in your import sheet that

do
not
exist in your PMS Master List.")
ActiveCell.EntireRow.Select
Exit Sub
End If
Next

For X = 1 To NumPMSCodes
ImportSheetVbNm.Select
ImportSheetVbNm.Range("B2").Offset(X - 1, 0).Select
MatchNumber =
Application.WorksheetFunction.Match(ActiveCell.Val ue, PMSMatchRange,

0)
CorrectCompanyName = PMSMatchRange.Offset(MatchNumber - 1,

1)
ImportSheetVbNm.Range("C2").Offset(X - 1, 0) =

CorrectCompanyName
Next