2015-04-08 1 views

ответ

1

Что делать, если rng находится на другом листе? Тогда вам нужно это:

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

Я бы выбрал именно этот ответ. –

+1

Просто наблюдение: если OP хочет вставить функцию через код, возможно, он не ссылается на какой-либо «ActiveSheet» в частности. Я бы удалил 'If' check и просто обратился к родительским именам как' rng' (input), так и 'rng2' (output). –

+0

@MatteoNNZ не будет никакой точкой для 'rng2', поскольку мы имеем дело с объектом напрямую - согласились, что нет необходимости в проверке« ActiveSheet », поскольку адрес будет по-прежнему работать с именем листа, даже если он находится на том же листе поэтому можно свести к одному оператору 'IIf()'. Будет обновляться, когда я вернусь к компьютеру! –

0

Вы должны указать адрес диапазона т.е:

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

Я пробовал это, и я получил # имя? ошибка. – Ilias

1

диапазон адресов должен быть принят в качестве переменной, а не строку:

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

Вот что мне нужно. – Ilias