我正在尝试根据某些输入在VBA中定义命名范围(带有工作簿范围),以帮助确定应包含在范围内的单元格。为了使它变得非常简单,我尝试了以下两个错误,如下所示。从某些计算中可以找到A,B,X,Y
rName = <some string that decides the name>
Set TempRng = .Range(.Cells(A,B), .Cells(X,Y))
ActiveWorkbook.Names.Add Name:=rName, RefersTo:=Worksheets("Sheet1").TempRng
这在Set TempRng行上给了我一个“不支持的对象或方法”错误或类似的东西。
rName = <string ...>
Set TempRng = Worksheets("Sheet1").Range(Cells(A,B), Cells(X,Y))
ActiveWorkbook.Names.Add Name:=rName, RefersTo:= <blah blah...>
这给了我一行“应用程序定义或对象定义错误”。
你能帮我找到定义这个范围的正确方法吗?
答案 0 :(得分:2)
我认为这有点直接。
TempRng.Name = rname
或者您甚至可以直接指定名称而不使用变量。
TempRng.Name = "myrangename"
名称范围为Workbook
,以防万一对您的需求至关重要。 HTH。
答案 1 :(得分:1)
使用:
Refersto:="=" & TempRng.Address
或更直接(如L42所说)
TempRng.Name = stName
要设置你的范围,请确保在开始“。”之前已经包含了“With”
With wsWhatever
Set TempRng = .Range(.Cells(A,B), .Cells(X,Y))
end with