根据单元格值将公式放入vba中

时间:2015-09-22 05:30:57

标签: excel vba excel-vba

我试图通过vba程序将动态公式设置如下:

=IFERROR(B9,0)+IFERROR(C9,0)+IFERROR(D9,0)+IFERROR(E9,0)++IFERROR(F9,0)+IFERROR(G9,0)+IFERROR(H9,0)+IFERROR(I9,0)+IFERROR(J9,0)+IFERROR(K9,0)+IFERROR(R9,0)+IFERROR(S9,0)+IFERROR(#REF!,0)+IFERROR(#REF!,0)+IFERROR(#REF!,0)+IFERROR(#REF!,0)+IFERROR(#REF!,0)

我有一个单元格,用于存储公式(F3)中所需的列数。 现在,如果F3中的值是18,我想要完成的是从单元格B9到单元格S9的上述格式的公式(这是19 col,因为我从B开始到F3 + 1)。更容易使用总和,但这不符合我的目的。因为如果N / A范围内的任何单元格(非常可能),则总和不应该是N / A而是其余值的总和。

1 个答案:

答案 0 :(得分:0)

试试这个。它将求和并用0替换错误单元格。这是一个非常简单的循环,因此没有评论。

Sub SumNumwithoutError()
  Dim rn As Range
  Dim wrn As Range
  Dim xSum As Long
  On Error Resume Next
  xSum = 0
  Set wrn = Application.Selection
  Set wrn = Application.InputBox("Range", wrn.Address, Type:=8)
  For Each rn In wrn
   If (IsError(rn.Value)) Then
        rn.Value = 0
   End If
   If Not (IsError(rn.Value)) Then
       xSum = xSum + rn.Value
   End If
  Next
  MsgBox xSum
End Sub