示例数据:
UniqueID描述ConsolidatedText
Str1这是一个句子这是一个句子
Str2和另一句话。还有一句话。还有一些话
Str2和一些话
Str3 123 123
Str4 abc abc ###“
Str5 ###
我有许多记录(~4000),每个记录都有一个UniqueID值(文本)和一个文本字段(可能非常冗长),这是用户输入的数据描述。我需要通过将所有描述连接到一个记录来合并电子表格,其中有多个UniqueID值出现。通常,我想循环遍历潜在值的范围并说“如果UniqueID相等,则获取所有Description值并将它们连接在一起(第一行或新行)然后删除所有旧的行“。基本上,我想在此示例数据中创建ConsolidatedText字段,然后还删除额外的行。这超出了我的VBA编程能力,对此宏结构的任何帮助都将非常感激。
答案 0 :(得分:0)
Option Explicit
Sub Tester()
Dim d As Object
Dim c As Range, sId, sDesc, k
Set d = CreateObject("Scripting.Dictionary")
For Each c In ActiveSheet.Range("A2:A4002")
sId = Trim(c.Value)
sDesc = c.Offset(0, 1).Value
If Not d.Exists(sId) Then
d(sId) = sDesc
Else
d(sId) = d(sId) & " " & sDesc
End If
Next c
DumpDict ActiveSheet.Parent.Sheets("Summary").Range("A2"), d
End Sub
Sub DumpDict(rng As Range, d As Object)
Dim k
For Each k In d.Keys
rng.Value = k
rng.Offset(0, 1).Value = d(k)
Set rng = rng.Offset(1, 0)
Next k
End Sub