Excel - обновить ссылки на формулы для нового местоположения - PullRequest
0 голосов
/ 24 ноября 2018

Когда я копирую ячейку с формулой в ней, а затем вставляю ее в другую ячейку на том же листе, ссылки на ячейки формулы обновляются для отражения новой позиции (с учетом абсолютных, относительных и смешанных ссылок на ячейки и т. Д.).

Есть ли способ выполнить эту формулу, обновляя в Excel VBA программно, обновляя строковую формулу из одного местоположения в другое, фактически не копируя ячейку и вставляя в другую?

Если нет, то какВы делаете это, копируя одну ячейку и вставляя в другое место в VBA?

РЕДАКТИРОВАТЬ: Аксель прекрасно ответил на вторую часть вопроса.Есть ли способ выполнить первую часть вопроса, не вставляя ее в ячейку (потому что, если мне нужно выполнить много таких действий, я должен догадаться, что это может быть немного медленным)?

1 Ответ

0 голосов
/ 24 ноября 2018

Я бы действительно посоветовал вам прочитать о нотации в стиле R1C1 и свойстве FormulaR1C1 в Excel VBA.Именно так Excel сама управляет обновлением ссылок на формулы для нового местоположения.

Например, если у вас есть формула в D5 активного листа, то следующий код поместит копию этой формулыв E6 точно, как Excel будет делать это в своем графическом интерфейсе.И тогда sFormula2 будет содержать обновленную формулу в стиле A1.

With ActiveSheet
 sFormula1 = .Range("D5").Formula
 sFormulaR1C1 = .Range("D5").FormulaR1C1
 .Range("E6").FormulaR1C1 = sFormulaR1C1
 sFormula2 = .Range("E6").Formula
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...