2015-04-08 15 views
0

一系列我有UDF Test(rng as range)和我想做的事情是這樣的:輸入一個UDF公式中使用VBA

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

我怎樣才能做到這一點?

回答

1

如果rng是另一片?那麼你需要這個:

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

我一定會選擇這個答案。 –

+1

只是一個觀察:如果OP想要通過代碼插入函數,可能他沒有特別引用任何'ActiveSheet'。我將刪除'If'檢查並簡單地引用'rng'(輸入)和'rng2'(輸出)的父名稱。 –

+0

@MatteoNNZ對於'rng2'不會有任何意義,因爲我們直接處理對象 - 同意不需要'ActiveSheet'檢查,因爲即使地址在同一張表上,地址仍然可以與表名匹配所以可以簡化爲一個'IIf()'語句。當我回到電腦時會更新! –

0

您必須指定範圍即地址:

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

我試過這個,我得到一個#name?錯誤。 – Ilias

1

範圍地址必須作爲變量進行傳遞,而不是一個字符串:

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

這就是我需要的感謝。 – Ilias