运行以下代码时,我在“If Not UniqueIDs.AddIfAbsent(ID)”行收到运行时错误438:经过一些研究,似乎UniqueIDs集合不支持Method/Property。我对所有这些都有点陌生,所以只是想谷歌一下所有这些术语。
我采取的一些步骤是将.AddIfAbsent替换为“If Not UniqueIDs.Exists(ID)Then”,并且不使用“ActiveSheet”,而是使用Dim ws As Worksheet语句。
我面临的另一个问题是最后一组代码,特别是“For Each ID in SortedUniqueIDs”的“ID”部分,我得到了一个编译错误:For每个控制变量必须是变量或对象”
我使用的代码如下:
Sub SumUniqueIdentifiers()
'Declare Variables
Dim ID As String
Dim Sum As Double
Dim LastRow As Long
Dim UniqueIDs As New Collection
Dim SortedUniqueIDs As Collection
Sheets("TH").Activate
'Set the last row of the data and Worksheet
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
'Initialize the sum
Sum = 0
'Loop through the data and sum the values for each unique ID
For i = 3 To LastRow
ID = ActiveSheet.Cells(i, 1).Value
'If the ID is new, add to the collection
If Not UniqueIDs.AddIfAbsent(ID) Then
Sum = 0
End If
'Add the value in the next column to the sum
Sum = Sum + Sheets("Sheet1").Cells(i, 2).Value
'Store the sum in the collection
UniqueIDs(ID) = Sum
Next I
'Loop through the collection and print the sums
For Each ID In SortedUniqueIDs
ActiveSheet.Cells(1, 6).Value = ID
ActiveSheet.Cells(LastRow + 1, 7).Value = SortedUniqueIDs(ID)
LastRow = LastRow + 1
Next ID
End Sub
字符串
我采取的一些步骤是将.AddIfAbsent替换为“If Not UniqueIDs.Exists(ID)Then”,并且不使用“ActiveSheet”,而是使用Dim ws As Worksheet语句。
目标是总结唯一标识符集合如果我在列A中有一系列唯一标识符,每个都有多个条目,我想使用列D中的数字总结每个唯一标识符,并将它们打印在列F中,由每个唯一标识符总结
2条答案
按热度按时间kpbwa7wx1#
最快,但非常简单的方法(取决于进一步的使用)
在列
F
中选择从row 1
到row ?
的单元格,然后在第一个单元格(?=列A
中最后使用的单元格行号)字符串
然后按CTRL+SHIFT+ENTER(不在365中)
在列
F
中的每一行中,将示出相应标识符的值的总和。jljoyd4f2#
Collection
对象不支持AddIfAbsent。使用Dictionary
对象代替。字符串