Gar*_*ent 12 excel vba worksheet-function excel-vba
如果我想在工作表中添加一组单元格,我可以使用以下公式:
=SUM(Sheet1!A1:A10)
Run Code Online (Sandbox Code Playgroud)
要在sub中执行此操作,我会使用:
Sub example1()
Dim r As Range, v As Variant
Set r = Sheets("Sheet1").Range("A1:A10")
v = Application.WorksheetFunction.Sum(r)
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在多个工作表中添加单个单元格,我使用以下公式:
=SUM(Sheet1:Sheet38!B2)
Run Code Online (Sandbox Code Playgroud)
在VBA中,此行失败,如在VBA中指定跨表的Excel范围中所述:
Sub dural()
v = Application.WorksheetFunction.Sum("Sheet1:Sheet3!B2")
End Sub
Run Code Online (Sandbox Code Playgroud)
我有两个解决方法.我可以通过编程循环来得到总和:
Sub example2()
Dim i As Long
Dim v As Variant
v = 0
For i = 1 To 38
v = v + Sheets(i).Range("B2")
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
或使用Evaluate():
v = Evaluate("Sum(Sheet1:Sheet3!B2)")
Run Code Online (Sandbox Code Playgroud)
是否可以Application.WorksheetFunction.Sum()用于此计算,还是应该坚持循环?
小智 6
我相信 worksheetfunction.sum 的问题在于它需要参数来评估而不是字符串。WorksheetFunction.Sum("Sheet1!A1:A3") 也失败了。然而,这成功了
Application.WorksheetFunction.Sum(Sheet1.Range("A1"), Sheet2.Range("A1"))
Run Code Online (Sandbox Code Playgroud)
范围可以是任何你喜欢的。
| 归档时间: |
|
| 查看次数: |
45294 次 |
| 最近记录: |