![]() |
absolute relative reference
Good day,
Situation: I am having a macro in "sheet_1" that is doing a whole bunch of operations. The macro uses a combination of absolute references such as: Cells(1, "C") = ... as well as relative references such as: Range("B1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 1).Select My problem: When I need the macro to execute an operation in the next sheet of my workbook "sheet_2", I write something as simple as: Sheets("sheet_2").Select Range("A3:A200").Select but I have an error message at the second line "Range("A3:A200").Select". I have never seen this kind of error before. My second line must be written as Sheets("sheet_2").Range("A2:K2").Select Usually, When I select a sheet, I do not need to "re-select" it in each line of the macro, but for this one, I am obliged to do so and it gets quite annoying. I think there is a problem of reference (absolute vs relative). Or maybe my macro is dedicated to sheet_1 only? If this is the case, how do I make it valid for the whole workbook? In any case, please help! -- Thanks Sebastien |
absolute relative reference
Sebastien,
Perhaps your code is inside a worksheet module? If so, it would explain why you need to qualify the Range selection. If you don't qualify it, Excel would attempt to select the range that exists in the worksheet where the code is. But because that worksheet is no longer the active one, you get the error. To avoid the error, you will need to move your Sub to a module. -- Hope that helps. Vergel Adriano "Sebastien" wrote: Good day, Situation: I am having a macro in "sheet_1" that is doing a whole bunch of operations. The macro uses a combination of absolute references such as: Cells(1, "C") = ... as well as relative references such as: Range("B1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 1).Select My problem: When I need the macro to execute an operation in the next sheet of my workbook "sheet_2", I write something as simple as: Sheets("sheet_2").Select Range("A3:A200").Select but I have an error message at the second line "Range("A3:A200").Select". I have never seen this kind of error before. My second line must be written as Sheets("sheet_2").Range("A2:K2").Select Usually, When I select a sheet, I do not need to "re-select" it in each line of the macro, but for this one, I am obliged to do so and it gets quite annoying. I think there is a problem of reference (absolute vs relative). Or maybe my macro is dedicated to sheet_1 only? If this is the case, how do I make it valid for the whole workbook? In any case, please help! -- Thanks Sebastien |
absolute relative reference
I think Vergel answered your question, but you could use:
with worksheets("sheet2") .select .range("a1:b9").select end with It'll save you some keystrokes and I think makes the code easier to read. Sebastien wrote: Good day, Situation: I am having a macro in "sheet_1" that is doing a whole bunch of operations. The macro uses a combination of absolute references such as: Cells(1, "C") = ... as well as relative references such as: Range("B1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 1).Select My problem: When I need the macro to execute an operation in the next sheet of my workbook "sheet_2", I write something as simple as: Sheets("sheet_2").Select Range("A3:A200").Select but I have an error message at the second line "Range("A3:A200").Select". I have never seen this kind of error before. My second line must be written as Sheets("sheet_2").Range("A2:K2").Select Usually, When I select a sheet, I do not need to "re-select" it in each line of the macro, but for this one, I am obliged to do so and it gets quite annoying. I think there is a problem of reference (absolute vs relative). Or maybe my macro is dedicated to sheet_1 only? If this is the case, how do I make it valid for the whole workbook? In any case, please help! -- Thanks Sebastien -- Dave Peterson |
All times are GMT +1. The time now is 09:59 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com