如何在VBA中对工作表数组使用Sum函数
我有一些代码,假设使用Sum函数将数组中工作表B6中的所有值相加,并将它们放入“总计”工作表的B6中如何在VBA中对工作表数组使用Sum函数,vba,Vba,我有一些代码,假设使用Sum函数将数组中工作表B6中的所有值相加,并将它们放入“总计”工作表的B6中 Range("B6").Value = Application.Worksheet.Sum(wkshtArray).Range("B6") wkshtArray= Array("Dec" & numYear, "Nov" & numYear) 您可以在此工作簿中循环工作表集合,并添加B6的值。这将排除带有If…Then语句的目标工作表 Sub test() Dim
Range("B6").Value = Application.Worksheet.Sum(wkshtArray).Range("B6")
wkshtArray= Array("Dec" & numYear, "Nov" & numYear)
您可以在
此工作簿中循环工作表集合
,并添加B6
的值。这将排除带有If…Then
语句的目标工作表
Sub test()
Dim ws As Worksheet, tgtWs As Worksheet, lVal As Long
Dim tgtName As String, yearNum As String
Do
yearNum = InputBox("Some Text")
If Not IsNumeric(yearNum) Then
MsgBox "Please enter a numeric number"
yearNum = "0"
End If
Loop Until CLng(yearNum) > 0
tgtName = "YTD" & yearNum
' This is the ws that will contain the sum product
On Error GoTo ErrHandler
Set tgtWs = ThisWorkbook.Worksheets(tgtName)
On Error GoTo 0
For Each ws In ThisWorkbook.Worksheets
If Not ws Is tgtWs Then
lVal = lVal + ws.Range("B6")
End If
Next ws
tgtWs.Range("B6") = lVal
Exit Sub
ErrHandler:
MsgBox "Sheet name [" & tgtName & "] does NOT exist!", _
vbCritical, "Invalid Sheet Name"
End Sub
如果您的意图是不从计算中排除目标工作表,那么只需删除
如果不是ws is tgtWs,则删除
行。我可以放心地假设您可能收到某种sytax错误。但是您仍然应该提供更多相关的代码。例如,很高兴看到wkshtArray
声明,以及如何为其赋值。您好,欢迎使用StackOverflow。请务必清楚地陈述您的问题,并提出简明的问题,以便社区能够最好地帮助您。谢谢我不再收到任何错误消息,但当我转到“总计”工作表上的单元格B6时,另一个单元格上的值都不会被求和。该工作表的索引是什么?您需要将Set tgtWs=thiswoolk.Worksheets(1)
的索引更改为正确的索引#,或者改用工作表名。因此,如果工作表名是总计所在的Sheet4
,则该行应类似于ThisWorkbook.Worksheets(“Sheet4”)
我将名称更改为我想要的工作表,但由于某种原因,它会给我错误代码“下标超出范围”。您还在使用数组吗?你现在不该这么做。所编写的代码应该可以正常工作(图纸名称除外)。代码中没有任何东西会引发该错误。工作表名称是什么,我将编辑我的答案,它应该像复制和粘贴一样简单:)