多列和可变行的总和

问题描述 投票:0回答:1

我需要从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

excel vba variables sum row
1个回答
0
投票
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。


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

有些比其他的更快,有些更易读,更适合您的情况...

© www.soinside.com 2019 - 2024. All rights reserved.