ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Convert String to a Contstant (https://www.excelbanter.com/excel-programming/376755-convert-string-contstant.html)

ron b

Convert String to a Contstant
 
to avoid being tied to a XML layout I identified each column as a Constant

Global Const CTrack1BD1 = "A"
Global Const CTrack1BD2 = "B"
Global Const CTrack2BD1 = "C"
Global Const CTrack2BD2 = "D"

and in my code I simply use eg range(CTrack1BD1 & counter) = ....

However now I want to use another cell value to slect the right Column
so cell "contains string "XXX2BD1"

My ideas was to use
TrackColumn = "CTrack" & right("XXX2BD1",4)
followed by
range("z1") = range( TrackColumn & a)

however the TrackColumn remains a sting and is not "replaced" by the Const
value "C"

any pointer would be much appriciated

Ron B

Tom Ogilvy

Convert String to a Contstant
 
Maybe something like this

Sub ABC()
Dim mycol As Collection
Dim a As Long
Dim rng As Range
Set mycol = New Collection
mycol.Add "A", "CTrack1BD1"
mycol.Add "B", "CTrack1BD2"
mycol.Add "C", "CTrack2BD1"
mycol.Add "D", "CTrack2BD2"

trackcolumn = "CTrack" & Right("XXX2BD1", 4)
a = 5
Set rng = Range(mycol.Item(trackcolumn) & a)
MsgBox rng.Address

End Sub


--
Regards,
Tom Ogilvy



"Ron B" wrote in message
...
to avoid being tied to a XML layout I identified each column as a Constant

Global Const CTrack1BD1 = "A"
Global Const CTrack1BD2 = "B"
Global Const CTrack2BD1 = "C"
Global Const CTrack2BD2 = "D"

and in my code I simply use eg range(CTrack1BD1 & counter) = ....

However now I want to use another cell value to slect the right Column
so cell "contains string "XXX2BD1"

My ideas was to use
TrackColumn = "CTrack" & right("XXX2BD1",4)
followed by
range("z1") = range( TrackColumn & a)

however the TrackColumn remains a sting and is not "replaced" by the Const
value "C"

any pointer would be much appriciated

Ron B




ron b

Convert String to a Contstant
 
Thanks Tom, indeed this would work....but
I think it will put to much overhead on my macro as I have to "enrich" a few
hundred events each min.

So I will stick to my workaround by calculating the column

help is appriciated though

"Tom Ogilvy" wrote:

Maybe something like this

Sub ABC()
Dim mycol As Collection
Dim a As Long
Dim rng As Range
Set mycol = New Collection
mycol.Add "A", "CTrack1BD1"
mycol.Add "B", "CTrack1BD2"
mycol.Add "C", "CTrack2BD1"
mycol.Add "D", "CTrack2BD2"

trackcolumn = "CTrack" & Right("XXX2BD1", 4)
a = 5
Set rng = Range(mycol.Item(trackcolumn) & a)
MsgBox rng.Address

End Sub


--
Regards,
Tom Ogilvy



"Ron B" wrote in message
...
to avoid being tied to a XML layout I identified each column as a Constant

Global Const CTrack1BD1 = "A"
Global Const CTrack1BD2 = "B"
Global Const CTrack2BD1 = "C"
Global Const CTrack2BD2 = "D"

and in my code I simply use eg range(CTrack1BD1 & counter) = ....

However now I want to use another cell value to slect the right Column
so cell "contains string "XXX2BD1"

My ideas was to use
TrackColumn = "CTrack" & right("XXX2BD1",4)
followed by
range("z1") = range( TrackColumn & a)

however the TrackColumn remains a sting and is not "replaced" by the Const
value "C"

any pointer would be much appriciated

Ron B






All times are GMT +1. The time now is 01:19 PM.

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