我需要从F列到P列的每一行的总和。在发生许多错误之后,我终于像这样:看代码,现在它不会给我一个错误,但是它不起作用;当我使用f8查看代码时,即使行总和在工作表中不为零,它也会保持为零。
dim i as integer
For i = 2 To numrows
som = Application.WorksheetFunction.sum(Reservationsheet.Cells(i, 6), Reservationsheet.Cells(i, 15))
I've already tried:
som = Application.WorksheetFunction.sum(Range(Cells((i), "F"):((i), "P"))) &
som = Application.WorksheetFunction.sum(Range(Cells(("F" & i):( "P", i))) 'etc, but here i get error messages
Thanks in advance
Application.WorksheetFunction.sum(Reservationsheet.Cells(i, 6), Reservationsheet.Cells(i, 15))
就像在工作表上写:SUM(Fn,On)
。换句话说,您仅添加两个单元格。
要添加范围,您需要指定整个范围,例如:
Application.WorksheetFunction.Sum(Range(Reservationsheet.Cells(i, 6), Reservationsheet.Cells(i, 15)))
如果您的数字实际上是数字的文本表示形式,而不是实数,[Sum
函数将返回0。
这里有几种实现方法:
Dim i as Long
For i = 2 To numrows
With Reservationsheet
Dim v As Variant
'v = .Evaluate("SUM(F" & i & ":P" & i & ")")
'v = Application.WorksheetFunction.Sum(Application.Intersect(Rows(i), .Range("F:P")))
v = Application.WorksheetFunction.Sum(.Range(.Cells(i, "F"), .Cells(i, "P")))
End With
有些比其他的更快,有些更易读,更适合您的情况...