Как создать формулу из такой ячейки, как автозаполнение - PullRequest
0 голосов
/ 05 июля 2018

У меня ячейка (А3) имеет формулу "= А1 + А2". Я хочу вычислить формулу для B3 из формулы A3, и результат "= B1 + B2", как функция автозаполнения. Нечто подобное

Function GetNextFormula(fromCell as Range, toCell as Range)
     bla bla bla 
     GetNextFormula = "=B1+B2"
End Sub

1 Ответ

0 голосов
/ 05 июля 2018

Формула xlR1C1 будет одинаковой в обоих случаях. Взяв формулу xlR1C1 из A3 и преобразовав ее в формулу стиля xlA1 относительно B3 с помощью метода Application.ConvertFormula , вы получите правильную формулу.

Function GetNextFormula(fromCell As Range, toCell As Range)

     GetNextFormula = Application.ConvertFormula(Formula:=fromCell.FormulaR1C1, _
                                                 FromReferenceStyle:=xlR1C1, _
                                                 ToReferenceStyle:=xlA1, _
                                                 ToAbsolute:=xlRelative, _
                                                 RelativeTo:=toCell)

End Function

Учитывая ваш недавний комментарий, вы можете просто выполнить StrCmp по формулам xlR1C1 из A3 и B3. Если B3 были сгенерированы с помощью AutoFill или FillRight, они будут идентичны.

if range("A3").formular1c1 = range("B3").formular1c1 then
    debug.print "autofill match"
end if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...