我试图根据我使用字典键隔离的唯一标识符来汇总一系列值,通过以下代码:
SearchVar = dictionary.Keys()(v)
Set FoundVar = CurrentPage.Find(What:=SearchVar, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False)
Set nextVar = CurrentPage.FindNext(FoundVar)
If Not FoundVar Is Nothing Then
Do Until FoundVar = nextVar
tempsum = tempsum + ws.Cells(FoundVar.Row, [ReferenceCell].Column).Value
Set nextVar = CurrentPage.FindNext(nextVar)
Loop
End If
然而,当我这样做时,tempsum保持为0.我确定tempsum添加部分中的单元格引用引用了正确的(非零)单元格。可能导致这个问题的原因是什么?
编辑以从下面添加注释:循环确实只运行一次。如果有多个值通过将其更改为
,我将其修改为多次运行Do until FoundVar.Address = NextVar.Address
但在这些情况下,它不会对FoundVar的最后一个实例的值求和(因为FoundVar和NextVar地址是相同的)。关于如何获得它的任何建议都包括最后一个值?我认为可以通过说'Do Found FoundVar.Address is Nothing'左右来完成,但不确定正确的语法。
答案 0 :(得分:0)
你的代码有些错误。试试这段代码。
Dim FoundVar As Range
Dim strAddress As String
SearchVar = dictionary.Keys()(v)
Set FoundVar = CurrentPage.Find(What:=SearchVar, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False)
'Set nextVar = CurrentPage.FindNext(FoundVar)
If Not FoundVar Is Nothing Then
strAddress = FoundVar.Address
Do
tempsum = tempsum + ws.Cells(FoundVar.Row, [ReferenceCell].Column).Value
Set FoundVar = CurrentPage.FindNext(FoundVar)
Loop Until strAddress = FoundVar.Address
End If