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
不再是对象(范围)。^是的,我想我在将问题的代码更改为答案时没有注意到这一点。谢谢