我试图在不使用自动填充的情况下将公式放入一系列单元格中。之前我曾经使用过自动填充功能但是想要改变它并且似乎无法让它工作。有人能告诉我我做错了什么吗?无法设置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
注意:第四行已注释掉。我以前的方式使用过该行。
谢谢!
答案 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
错误信息是什么(如果有的话)?