Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
使用VBA在一定范围内输入自定义项公式_Vba_Excel_Formulas - Fatal编程技术网

使用VBA在一定范围内输入自定义项公式

使用VBA在一定范围内输入自定义项公式,vba,excel,formulas,Vba,Excel,Formulas,我有一个UDF测试(rng作为范围),我想这样做: Dim rng2 as Range Set rng2 = blah blah rng2.formula = "=test(rng)" 如何执行此操作?您必须指定范围的地址,即: rng2.formula = "=test(" & rng.address & ")" 范围地址必须作为变量而不是字符串传递: Dim rng2 as Range Set rng2 = blah blah rng2.formula = "=test(

我有一个UDF
测试(rng作为范围)
,我想这样做:

Dim rng2 as Range
Set rng2 = blah blah
rng2.formula = "=test(rng)"

如何执行此操作?

您必须指定范围的地址,即:

rng2.formula = "=test(" & rng.address & ")"

范围地址必须作为变量而不是字符串传递:

Dim rng2 as Range
Set rng2 = blah blah
rng2.formula = "=test(" & rng.Address & ")"

如果
rng
在另一张纸上怎么办?那么你需要这个:

rng2.Formula = "=test('" & rng.Parent.Name & "'!" & rng.Address & ")"

我肯定会选择这个答案。只是一个观察:如果OP想通过代码插入函数,可能他没有特别提到任何
ActiveSheet
。我将删除
If
复选框,并简单地引用
rng
(输入)和
rng2
(输出)的父名称.@MatteoNNZ对于
rng2
没有任何意义,因为我们直接处理对象-同意没有必要进行
ActiveSheet
检查,因为地址仍将与工作表名称一起工作,即使它位于同一工作表上,因此可以简化为一条
IIf()
语句。当我回到电脑前会更新!对于rng2,我同意你所说的这个简单的改变。@S O是的,这是一个魅力。我在看到你的编辑之前就用过这个。竖起大拇指。