我在工作簿中的单元格中有一个字符串,用于定义应该进行查找的范围的地址。
举个例子,假设该字符串名为LookupRange,其值为:
''Rate Sheet'!Y111:AA126
我的问题是,在我的代码中,当我设置我必须使用的范围时:
Set yRange = ThisWorkbook.Worksheets("Rate Sheet").Range(LookupRange)
有没有办法在不使用.Worksheets()属性的情况下使用.Range()属性?
例如,也许可以采用以下方式:
Set yRange = ThisWorkbook.Range(LookupRange)
如果没有,我想我可能要编写一些代码来从工作表范围中提取工作表名称?
答案 0 :(得分:1)
假设LookupRange
是一个字符串,您可以使用Mid()
和InStr()
从字符串中提取工作表和范围:
Sub TestIt()
Dim LookupRange As String
LookupRange = "'Rate Sheet'!Y111:AA126"
SheetL = Mid(LookupRange, 2, InStr(2, LookupRange, "'") - 2)
RangeL = Mid(LookupRange, InStr(1, LookupRange, "!") + 1, Len(LookupRange))
Set yRange = ThisWorkbook.Sheets(SheetL).Range(RangeL)
End Sub
答案 1 :(得分:0)
我不确切知道你在做什么样的查找,但这应该有效..(将其解析为字符串)
Sub range_set()
Dim rr As Range
Set rr = Range(CStr(Range("LookupRange")))
Debug.Print Application.WorksheetFunction.VLookup(1, rr, 2, False)
End Sub
命名范围"LookupRange"
是包含要在“查找”中使用的工作表地址"Sheet2!Y111:AA126"
(或其他)的单个单元格。
答案 2 :(得分:0)
Set yRange = Application.Range("'Rate Sheet'!Y111:AA126")