Run-Time error '1004' : Select method of Range class failed

  • Thread starter matthew.a.lawless
  • Start date
M

matthew.a.lawless

I have some code that works from a keyboard shortcut, but when I try
to attach it to a command button on another worksheet is delivers the
above error. Code is below, please help!

Sheets("Table").Activate
Range("E5:M17").Select
Selection.Sort Key1:=Range("M6"), Order1:=xlDescending,
Key2:=Range("L6") _
, Order2:=xlDescending, Key3:=Range("J6"),
Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal,
DataOption3:= _
xlSortNormal
Range("A1").Select
 
D

Dave Peterson

When the code is in a general module (not under a worksheet), then unqualified
ranges belong to the active sheet.

When the code is behind a worksheet, then unqualified ranges belong to the sheet
that owns the code.

So when you write:
range("e5:M17").select
it's refering to the sheet with the commandbutton--not Table

You could qualify each range:
worksheets("table).range("e5:m17").select
(kind of a pain)

Or you could drop the select's:

with worksheets("Table")
with .range("E5:M17")
.cells.sort Key1:=.columns(9), Order1:=xlDescending, _
Key2:=.columns(8), Order2:=xlDescending, _
Key3:=.columns(6), Order3:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
end with
end with

And you know if your data has headers, right. I'd change xlguess to xlyes or
xlno. I don't like excel to guess at anything I could specify.
 
D

Dave Peterson

One more followup...

So when you write:
range("e5:M17").select
it's refering to the sheet with the commandbutton--not Table

And since you're trying to select a range on a non-active sheet (the sheet with
the commandbutton), you get the error.
 
M

matthew.a.lawless

Thanks, works great now.

One more followup...

So when you write:
range("e5:M17").select
it's refering to the sheet with the commandbutton--not Table

And since you're trying to select a range on a non-active sheet (the sheet with
the commandbutton), you get the error.








--

Dave Peterson- Hide quoted text -

- Show quoted text -
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top