设置范围并在VBA中定义命名范围

时间:2015-02-12 23:38:36

标签: excel-vba vba excel

我正在尝试根据某些输入在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...>

这给了我一行“应用程序定义或对象定义错误”。

你能帮我找到定义这个范围的正确方法吗?

2 个答案:

答案 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