繁体   English   中英

VBA在Excel中:将单元格值写入到一列中(如果该位置尚不存在)

[英]VBA in Excel: writing cell value to a column if it doesn't already exist there

好的,所以我在一列中有一个名称表,在另一列中有相应的数字。 大多数名称会出现不止一次,并且每次都有不同的编号。 该表可能会在将来添加。 我正在尝试编写一个VBA宏,该宏将每个名称输出一次,并将附在它们上面的数字的总和显示在另一张纸上。 我已经有8个月没有使用VBA了,我真的很生锈。 建议?

我相信记得要添加参考Microsoft脚本运行时。 您将需要在这里使用字典。

Sub test()

    Dim var As Variant
    Dim rng As Range
    Set rng = Range("A1:A100")
    Dim dico As Dictionary

    Set dico = New Dictionary
    For Each var In rng.Cells
        if dico.Exists(var.value) Then
             dico(var.value) = dico(var.value) + var.offset(0,1).value
        else
             dico.Add var.value, var.offset(0,1).value
        end if
    Next var

    Set rng = Range("C1")
    Dim i as double
    i = 0
    For Each var In dico.keys
        rng.offset(i).value = var
        rng.offset(i,1).value = dico(var)
    Next var

End sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM