如何从像自动填充的单元格生成公式

时间:2018-07-05 03:12:37

标签: excel-vba vba excel

我有一个单元格(A3)的公式为“ = A1 + A2”。我想从公式A3计算B3的公式,结果像“自动填充”功能一样是“ = B1 + B2”。 像这样

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

1 个答案:

答案 0 :(得分:3)

在两种情况下,xlR1C1公式将完全相同。从A3提取xlR1C1公式,并使用Application.ConvertFormula method将其转换为相对于B3的xlA1样式公式,将提供正确的公式。

Function GetNextFormula(fromCell As Range, toCell As Range)

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

End Function

鉴于您最近的评论,您只需对A3和B3的xlR1C1公式执行StrCmp。如果B3是使用AutoFill或FillRight生成的,则它们将是相同的。

if range("A3").formular1c1 = range("B3").formular1c1 then
    debug.print "autofill match"
end if