Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:将单元格地址设置为变量;对象要求错误“;_Excel_Vba_Variables_Object_Cell - Fatal编程技术网

Excel VBA:将单元格地址设置为变量;对象要求错误“;

Excel VBA:将单元格地址设置为变量;对象要求错误“;,excel,vba,variables,object,cell,Excel,Vba,Variables,Object,Cell,我想将单元格地址设置为变量。然后使用该变量设置一个单元格公式,其中包含一个可引用的单元格rng,也就是说,应该有人能够双击带有该公式的单元格,并查看rng的单元格引用,而不是公式中单元格rng的值。我有以下代码: Dim rng As Range Dim j As integer j = 5 Set rng = ActiveSheet.Cells(j, 1).Address(False, False) ' get error here ActiveSheet.Cells(1, 15).For

我想将单元格地址设置为变量。然后使用该变量设置一个单元格公式,其中包含一个可引用的单元格
rng
,也就是说,应该有人能够双击带有该公式的单元格,并查看
rng
的单元格引用,而不是公式中单元格
rng
的值。我有以下代码:

Dim rng As Range
Dim j As integer 
j = 5
Set rng = ActiveSheet.Cells(j, 1).Address(False, False) ' get error here

ActiveSheet.Cells(1, 15).Formula = "=5*" & rng  

我得到这个“对象要求错误”。我做错了什么?

好的,所以我认为我的问题是我误解了
ActiveSheet.Cells(j,1).Address(False,False)
的类型

ActiveSheet.Cells(j,1).Address(False,False)
是一个
字符串
,因此如果将
范围
设置为
字符串
,则会出现错误。只需将
rng
更改为
String
即可解决我的问题:

解决方案:

Dim rng As String
Dim j As integer 
j = 5
rng = ActiveSheet.Cells(j, 1).Address(False, False) ' works now

ActiveSheet.Cells(1, 15).Formula = "=5*" & rng 

或者,如果您需要
rng
进行其他操作,您可以执行以下操作

Dim rng As Range
Dim j As integer 
j = 5
Set rng = ActiveSheet.Cells(j, 1)

ActiveSheet.Cells(1, 15).Formula = "=5*" & rng.address

您应该从第四行中删除
Set
,因为
rng
不再是对象(范围)。^是的,我想我在将问题的代码更改为答案时没有注意到这一点。谢谢