ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Select a Range Through a Variable (https://www.excelbanter.com/excel-programming/347405-select-range-through-variable.html)

GoFigure[_9_]

Select a Range Through a Variable
 

Excel ver: 2003 [11 (SP2)]
OS: WXP (SP2)

In the following code, VBA returns the error "Method 'Range' of
object'_Global' failed" at the statement Range(BorderRange).Select.


Code:
--------------------
Dim PageBorderRows, TotalBorderCells, RestoreBorderCells
Dim str1 As Variant, str2 As Variant, BorderRange

PageBorderRows = Array("53", "96")
TotalBorderCells = Array("K:L", "V:W", "AG:AH")
For Each str1 In PageBorderRows

For Each str2 In TotalBorderCells
BorderRange = Chr(34) & Mid(str2, 1, (InStr(1, str2, ":") - 1)) & str1 & ":" _
& Mid(str2, (InStr(1, str2, ":") + 1), Len(str2)) & str1 & Chr(34)
Range(BorderRange).Select
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

Next ' TotalBorderCells
Next ' PageBorderRows

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

How can I create a named range in this manner and use it to select that
range?

For example, the first pass through the code results in the range
"K53:L53". But Range(BorderRange).Select produces the above error.

Thanks,

- Al


--
GoFigure
------------------------------------------------------------------------
GoFigure's Profile: http://www.excelforum.com/member.php...fo&userid=4274
View this thread: http://www.excelforum.com/showthread...hreadid=490974


Tom Ogilvy

Select a Range Through a Variable
 
Change

BorderRange = Chr(34) & Mid(str2, 1, _
(InStr(1, str2, ":") - 1)) & str1 & ":" _
& Mid(str2, (InStr(1, str2, ":") + 1), _
Len(str2)) & str1 & Chr(34)

to

BorderRange = Mid(str2, 1, _
(InStr(1, str2, ":") - 1)) & str1 & ":" _
& Mid(str2, (InStr(1, str2, ":") + 1), _
Len(str2)) & str1

in otherwords, lose the doublequote on each end.

--
Regards,
Tom Ogilvy


"GoFigure" wrote in
message ...

Excel ver: 2003 [11 (SP2)]
OS: WXP (SP2)

In the following code, VBA returns the error "Method 'Range' of
object'_Global' failed" at the statement Range(BorderRange).Select.


Code:
--------------------
Dim PageBorderRows, TotalBorderCells, RestoreBorderCells
Dim str1 As Variant, str2 As Variant, BorderRange

PageBorderRows = Array("53", "96")
TotalBorderCells = Array("K:L", "V:W", "AG:AH")
For Each str1 In PageBorderRows

For Each str2 In TotalBorderCells
BorderRange = Chr(34) & Mid(str2, 1, (InStr(1, str2, ":") - 1)) & str1 &

":" _
& Mid(str2, (InStr(1, str2, ":") + 1), Len(str2)) & str1 & Chr(34)
Range(BorderRange).Select
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

Next ' TotalBorderCells
Next ' PageBorderRows

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

How can I create a named range in this manner and use it to select that
range?

For example, the first pass through the code results in the range
"K53:L53". But Range(BorderRange).Select produces the above error.

Thanks,

- Al


--
GoFigure
------------------------------------------------------------------------
GoFigure's Profile:

http://www.excelforum.com/member.php...fo&userid=4274
View this thread: http://www.excelforum.com/showthread...hreadid=490974




Arvi Laanemets

Select a Range Through a Variable
 
Hi

Try
ActiveSheet.Range(BorderRange).Select
or
Sheets(Sheetname).Range(BorderRange).Select


--
Arvi Laanemets
( My real mail address: arvil<attarkon.ee )


"GoFigure" wrote in
message ...

Excel ver: 2003 [11 (SP2)]
OS: WXP (SP2)

In the following code, VBA returns the error "Method 'Range' of
object'_Global' failed" at the statement Range(BorderRange).Select.


Code:
--------------------
Dim PageBorderRows, TotalBorderCells, RestoreBorderCells
Dim str1 As Variant, str2 As Variant, BorderRange

PageBorderRows = Array("53", "96")
TotalBorderCells = Array("K:L", "V:W", "AG:AH")
For Each str1 In PageBorderRows

For Each str2 In TotalBorderCells
BorderRange = Chr(34) & Mid(str2, 1, (InStr(1, str2, ":") - 1)) & str1 &
":" _
& Mid(str2, (InStr(1, str2, ":") + 1), Len(str2)) & str1 & Chr(34)
Range(BorderRange).Select
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

Next ' TotalBorderCells
Next ' PageBorderRows

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

How can I create a named range in this manner and use it to select that
range?

For example, the first pass through the code results in the range
"K53:L53". But Range(BorderRange).Select produces the above error.

Thanks,

- Al


--
GoFigure
------------------------------------------------------------------------
GoFigure's Profile:
http://www.excelforum.com/member.php...fo&userid=4274
View this thread: http://www.excelforum.com/showthread...hreadid=490974




GoFigure[_10_]

Select a Range Through a Variable
 

Thanks, Tom and Arvi. I just modified the statement as Tom suggested.

Does Excel figure out that BorderRange is a string and that's why yo
don't have to form a double-quoted string?

- A

--
GoFigur
-----------------------------------------------------------------------
GoFigure's Profile: http://www.excelforum.com/member.php...nfo&userid=427
View this thread: http://www.excelforum.com/showthread.php?threadid=49097



All times are GMT +1. The time now is 08:12 AM.

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