在没有自动填充的范围内粘贴公式

时间:2014-05-06 12:42:41

标签: excel vba

我试图在不使用自动填充的情况下将公式放入一系列单元格中。之前我曾经使用过自动填充功能但是想要改变它并且似乎无法让它工作。有人能告诉我我做错了什么吗?无法设置Range cHere的FormulaArray属性就是我所拥有的:

 With ActiveSheet.ListObjects(1)
    Cells(1, .ListColumns.Count - 5).Value = "STUDENT POINTS"
    Range(Cells(3, .ListColumns.Count - 5), Cells(.ListRows.Count + 1, .ListColumns.Count - 5)).FormulaArray = "=IF(SUM(" & Range("E3").Address(False, True) & ":" & Cells(3, intTotalItems + 4).Address(False, True) & ")>0,SUM(" & Range("E3").Address(False, True) & ":" & Cells(3, intTotalItems + 4).Address(False, True) & "),"""")"
    'rngAssignment.Offset(2, intTotalItems + 1).AutoFill Destination:=Range(rngAssignment.Offset(2, intTotalItems + 1), rngAssignment.Offset(2, intTotalItems + 1).End(xlDown))
 End With

注意:第四行已注释掉。我以前的方式使用过该行。

谢谢!

1 个答案:

答案 0 :(得分:0)

我已经开始了。你有一个未定义的符号     intTotalItems 如果我试图替换某些内容以及变量     lColCountMinusFive 然后代码工作,公式数组函数。不可否认,我确实在调试时将代码拆开并定义了一些临时变量......

Sub T()

    Dim intTotalItems

    Dim lColCountMinusFive As Long


    With ActiveSheet.ListObjects(1)
       lColCountMinusFive = 1 'Meaden .ListColumns.Count - 5
       Cells(1, lColCountMinusFive).Value = "STUDENT POINTS"

       Dim rngToFill As Excel.Range
       Set rngToFill = Range(Cells(3, lColCountMinusFive), Cells(.ListRows.Count + 1, lColCountMinusFive))


       Dim sSum As String
       sSum = Range("E3").Address(False, True) & ":" & Cells(3, intTotalItems + 4).Address(False, True)


       rngToFill.FormulaArray = _
           "=IF(SUM(" & sSum & ")>0,SUM(" & sSum & "),"""")"

    End With

End Sub

错误信息是什么(如果有的话)?