Hi,

Every range reference is independent.  It's not like human lanugage where
context is assumed intelligently.  The only context assumed with range and
sheet references is ActiveWorkbook and ActiveSheet.  It doesn't use other
range references as context (i.e. the context of the Sheets(...)... as the
correct sheet for Cells in  Sheets.Range(Cells(...), Cells(...)).

 

In real estate, it's "location, location, location."  In VBA, I say, it's
"qualify, qualify, qualify."

 

Even when you expect it to end up selecting the correct workbook or
worksheet with the ActiveWorkbook and ActiveSheet assumptions, think about
the meaning of those words, and whether they define your specifications.  If
the object of interest is WHATEVER workbok or worksheet happens to be
active, then OK, VBAs assumptions and your intent match.  This is often the
case with VBA addins, which usually provide general-purpose features for the
end-user that they might use from any workbook.  Even then, often the
workbooks or worksheet of interest isn't defined by whether the
workbook/worksheet is active, but by whether they explicitly selected it, or
placed an add-in-defined UDF function on it.  However, if you created an
add-in macro with the hokey Ctrl-Z to select all cells that mention zebras
in their text, you probably intend to search for zebras on the active sheet.

 

When you really mean the ActiveWorkbook or ActiveSheet -- Still qualify
them.  It makes your intent clear, and debugging easier, if you always
qualify.

 

> But that means the cells associated with the active sheet

> which is not Sheets(RawData)?

 

Definitely.  Every object reference is independent and needs to be qualified
independently.

 

Asa

 

 

-----Original Message-----
From: excel-macros@googlegroups.com [mailto:excel-macros@googlegroups.com]
On Behalf Of Domain Admin
Sent: Saturday, April 14, 2012 6:14 PM
To: excel-macros@googlegroups.com
Subject: Re: $$Excel-Macros$$ Program written, compiles, but odd runtime
error in setting a range pointer

 

Ramping up my ignorance to the next level I guess.

I only have one workbook and it is active so is the workbook part not
needed?

 

Changing to this worked but I thought that issue was resolved last

night by the removal of the

period in front of cells.  But that means the cells associated with

the active sheet which

is not Sheets(RawData)?

 

 

On Sat, Apr 14, 2012 at 5:58 PM, Asa Rossoff < <mailto:a...@lovetour.info>
a...@lovetour.info> wrote:

> Not illegal, but --

> 

> You didn't qualify Sheets or either instance of Cells in your problem line

> of code.

> 

> 

> 

> That line, as written, requires two things to be true to work correctly:

> 

> 1.       The active workbook is the workbook that hold the named sheet.
You

> could avoice that with ThisWorkbook.Sheets() -- btw this applies to you

> first line with the With block too.

> 

> 2.       The ActiveSheet is the same as the named sheet.   Avoid this by

> qualifying the two instances of cells, e.g.

> ThisWorkbook.Sheets(RawData).Cells(2, BarOpen),

> ThisWorkbook.Sheets(RawData).Cells(stoprawdata, EContango).

> 

> 

> 

> You might want to use a With Block and/or sheet/range variables to qualify

> those references in a less redundant (and more efficient) line of code.

> 

> 

> 

> Asa

> 

> 

> 

> 

> 

> From:  <mailto:excel-macros@googlegroups.com>
excel-macros@googlegroups.com [ <mailto:excel-macros@googlegroups.com>
mailto:excel-macros@googlegroups.com]

> On Behalf Of tangledweb

> Sent: Saturday, April 14, 2012 5:49 PM

> To:  <mailto:excel-macros@googlegroups.com> excel-macros@googlegroups.com

> Subject: $$Excel-Macros$$ Program written, compiles, but odd runtime error

> in setting a range pointer

> 

> 

> 

> Program has already by error time successfully called 3 procedures doing
all

> the initialization work across 3 different sheets.

> 

> But then... application defined or object defined error

> 

> 

> 

> This has already  successfully executed

> 

> 

> 

>     With Sheets(RawData)

>         Set tmprange = .Range(.Cells(2, BarOpen), .Cells(stoprawdata,

> StopCol))

> 

>     end with

> 

> 

> 

> but then it tries to set a new value for tmprange that fails.   Is that

> illegal or do you have to clear or release it in some way first or...?

> 

> This fails with the error mentioned above. All the variables inside the
line

> have correct values.

> 

> 

> 

>     Set tmprange = Sheets(RawData).Range(Cells(2, BarOpen),

> Cells(stoprawdata, EContango))

> 

> 

> 

> all it is doing is setting tmprange to point to a range with one more
column

> than it had before.

> 

> 

> 

> 

> 

> 

> 

> --

> FORUM RULES (986+ members already BANNED for violation)

> 

> 1) Use concise, accurate thread titles. Poor thread titles, like Please

> Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice
will

> not get quick attention or may not be answered.

> 

> 2) Don't post a question in the thread of another member.

> 

> 3) Don't post questions regarding breaking or bypassing any security

> measure.

> 

> 4) Acknowledge the responses you receive, good or bad.

> 

> 5) Cross-promotion of, or links to, forums competitive to this forum in

> signatures are prohibited.

> 

> NOTE : Don't ever post personal or confidential data in a workbook. Forum

> owners and members are not responsible for any loss.

> 

>
----------------------------------------------------------------------------
--------------------------

> To post to this group, send email to
<mailto:excel-macros@googlegroups.com> excel-macros@googlegroups.com

> 

> --

> FORUM RULES (986+ members already BANNED for violation)

> 

> 1) Use concise, accurate thread titles. Poor thread titles, like Please

> Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice
will

> not get quick attention or may not be answered.

> 

> 2) Don't post a question in the thread of another member.

> 

> 3) Don't post questions regarding breaking or bypassing any security

> measure.

> 

> 4) Acknowledge the responses you receive, good or bad.

> 

> 5) Cross-promotion of, or links to, forums competitive to this forum in

> signatures are prohibited.

> 

> NOTE : Don't ever post personal or confidential data in a workbook. Forum

> owners and members are not responsible for any loss.

> 

>
----------------------------------------------------------------------------
--------------------------

> To post to this group, send email to
<mailto:excel-macros@googlegroups.com> excel-macros@googlegroups.com

 

-- 

FORUM RULES (986+ members already BANNED for violation)

 

1) Use concise, accurate thread titles. Poor thread titles, like Please
Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will
not get quick attention or may not be answered.

 

2) Don't post a question in the thread of another member.

 

3) Don't post questions regarding breaking or bypassing any security
measure.

 

4) Acknowledge the responses you receive, good or bad.

 

5)  Cross-promotion of, or links to, forums competitive to this forum in
signatures are prohibited. 

 

NOTE  : Don't ever post personal or confidential data in a workbook. Forum
owners and members are not responsible for any loss.

 

----------------------------------------------------------------------------
--------------------------

To post to this group, send email to  <mailto:excel-macros@googlegroups.com>
excel-macros@googlegroups.com

-- 
FORUM RULES (986+ members already BANNED for violation)

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.

2) Don't post a question in the thread of another member.

3) Don't post questions regarding breaking or bypassing any security measure.

4) Acknowledge the responses you receive, good or bad.

5)  Cross-promotion of, or links to, forums competitive to this forum in 
signatures are prohibited. 

NOTE  : Don't ever post personal or confidential data in a workbook. Forum 
owners and members are not responsible for any loss.

------------------------------------------------------------------------------------------------------
To post to this group, send email to excel-macros@googlegroups.com

Reply via email to