Как скопировать формулу средствами VBA?

code: #basic
Range("B2") = Range("A1").Formula ' Вариант III.
Range("B2").Value = Range("A1").Formula ' Вариант II.
Range("B2").Formula = Range("A1").Formula ' Вариант I.

Предполагается, что:

  • Range("B2") - это ячейка, где будет формула
  • Range("A1") - это исходная ячейка с формулой

Этот вариант предназначен для тиражирования обычных формул, для того, чтобы он работал и с формулами массива, необходимо использовать:

code: #basic
If Not Range("A1").HasArray Then
   Range("B2").Formula = Range("A1").Formula
Else
   If Range("A1").CurrentArray.Count = 1 Then
      Range("B2").FormulaArray = Range("A1").Formula
   Else
      MsgBox "Эта формула массива, по замыслу создателя, должна занимать более одной ячейки"
   End If
End If
Поделиться:

Похожие статьи: