2011-08-12 16 views
0

サンプルデータのVBAで複数のレコードからテキストを連結します。 一意ID説明ConsolidatedText STR1ここでは、ここでは文である文 STR2そして、もう一つの文です。そして別の文章。そして、いくつかの言葉 STR2そして、いくつかの単語 STR3 123 123
STR4 ABC ABC###」 化5 ###私はレコード数(〜4000)を持っているは条件付きで

のUniqueID値を持つ各(テキスト)と私は、すべての説明をUniqueID値が複数存在する単一のレコードに連結して、スプレッドシートを統合する必要があります。潜在的な値の範囲は、 "UniqueIDが等しい場合は、すべての説明の値を取り、単一の行(最初の行または新しい行)でそれらを連結し、すべての古い行を削除します。 ConsolidatedTextフィールドを作成するこのサンプルデータを読み込み、さらに余分な行を削除します。これは私のVBAプログラミング能力を超えており、このマクロの構造に関する助けがあれば幸いです。

+0

可能重複[条件付きVBAで複数のレコードからテキストを連結(http://stackoverflow.com/questions/7043629/conditionally-concatenate-text-from-multiple-records-in-vba) –

答えて

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