ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   dynamically naming ranges (https://www.excelbanter.com/excel-programming/426625-dynamically-naming-ranges.html)

KimC

dynamically naming ranges
 
I have a workbook in which I want to run the same macros on each sheet. The
macros contain range names, so I know I will have to rename the ranges for
each sheet. Is there a way to programmatically change the macro range names
so that I can use the same set of macros for each sheet (there are MANY
sheets)? I am thinking something like incorporating the sheet name in the
range name when it is created by the code. I realize that the range names
that are created will have to be deleted after the macros are run to avoid
creating _1, _2, etc versions. Any help appreciated.

joel

dynamically naming ranges
 
use set statements in your code


for each sht in sheets
Set Range1 = .Range("A1:D4")
Set Range2 = .Range("B7:H4")
Set Range3 = .Range("G1:K4")

next sht

"KimC" wrote:

I have a workbook in which I want to run the same macros on each sheet. The
macros contain range names, so I know I will have to rename the ranges for
each sheet. Is there a way to programmatically change the macro range names
so that I can use the same set of macros for each sheet (there are MANY
sheets)? I am thinking something like incorporating the sheet name in the
range name when it is created by the code. I realize that the range names
that are created will have to be deleted after the macros are run to avoid
creating _1, _2, etc versions. Any help appreciated.


KimC

dynamically naming ranges
 
Thank you so much--I'll try that

"joel" wrote:

use set statements in your code


for each sht in sheets
Set Range1 = .Range("A1:D4")
Set Range2 = .Range("B7:H4")
Set Range3 = .Range("G1:K4")

next sht

"KimC" wrote:

I have a workbook in which I want to run the same macros on each sheet. The
macros contain range names, so I know I will have to rename the ranges for
each sheet. Is there a way to programmatically change the macro range names
so that I can use the same set of macros for each sheet (there are MANY
sheets)? I am thinking something like incorporating the sheet name in the
range name when it is created by the code. I realize that the range names
that are created will have to be deleted after the macros are run to avoid
creating _1, _2, etc versions. Any help appreciated.


Arvi Laanemets

dynamically naming ranges
 
Hi

Define the named range Test, with Source=INDIRECT("$A$1:$A$10")

Now, the named range Test returns cell range from CURRENTLY ACTIVE SHEET.

So define your range using INDIRECT and without any sheet reference. And
then in your script to switch between ranges on different sheets, you
activate the sheet, reread the named range, and make your calculations with
data from this sheet, then you avtivate next sheet, etc.


Arvi Laanemets



"KimC" wrote in message
...
I have a workbook in which I want to run the same macros on each sheet.
The
macros contain range names, so I know I will have to rename the ranges for
each sheet. Is there a way to programmatically change the macro range
names
so that I can use the same set of macros for each sheet (there are MANY
sheets)? I am thinking something like incorporating the sheet name in the
range name when it is created by the code. I realize that the range names
that are created will have to be deleted after the macros are run to avoid
creating _1, _2, etc versions. Any help appreciated.





All times are GMT +1. The time now is 08:13 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com