试图使VBA合并范围C5:C46,D5:D46等,但仅显示要添加的可见行。
尝试了多种方法,并查看了许多其他代码来尝试使其正常运行,但没有成功
我在征求建议!
附上了我使用过的两个示例,但是没有用。
Private Function AddTotals()
' Dim rCell As Range
' For Each rCell In Range("C5:C46")
' Cells(47, 3).Value = WorksheetFunction.Subtotal(109, Range(Cells(1, rCell.Column), _
' Cells(Rows.Count, rCell.Column).End(xlUp)))
' Next rCell
Cells(47, 3).Value = WorksheetFunction.Subtotal(109, Range("C5:C46")) ' Add up all Invoiced Amount
Cells(47, 4).Value = WorksheetFunction.Sum(Range("D5:D46")) ' Add up all Activities Amount
Cells(47, 6).Value = WorksheetFunction.Sum(Range("F5:F46")) ' Add up all Cash Payments
Cells(47, 7).Value = WorksheetFunction.Sum(Range("G5:G46")) ' Add up all EFT Payments
End Function
使用“总和”有效,但不能使用小计。
答案 0 :(得分:0)
I suggest you use explicit references to the worksheet to which your cells/ranges belong. I am running the following code with no issues whatsoever:
Sub AddTotals()
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("The name of your worksheet")
sht.Cells(31, 3).Value = WorksheetFunction.Subtotal(109, sht.Range("C5:C30"))
sht.Cells(31, 4).Value = WorksheetFunction.Sum(sht.Range("D5:D30"))
sht.Cells(31, 6).Value = WorksheetFunction.Sum(sht.Range("F5:F30"))
sht.Cells(31, 7).Value = WorksheetFunction.Sum(sht.Range("G5:G30"))
End Sub
Here's my results on some random data:
中提取Facebook页面URL答案 1 :(得分:0)
我认为您可以使用:
Option Explicit
Sub test()
With ThisWorkbook.Worksheets("Sheet1") 'Change if needed
.Cells(31, 3).Formula = "=Subtotal(109,C5:C30)"
.Range(.Cells(31, 4), .Cells(31, 7)).Formula = "=Sum(D5:D30)"
End With
End Sub