重複を含む次のデータセットがあります。VBA - 重複を含むシートを追加し、行に出力を配置する
values:
2880CR-20.36KX53305DECOAK2015
F05572-CN48517OCTOAK2016
F05572-CN48517DECOAK2016
F05572-CN48517NOVOAK2015
F05572-CN48517NOVOAK2015(duplicate)
F05572-CN48517DECOAK2015
F05573-CN48517JANOAK2016
F05573-CN48517FEBOAK2016
F05573-CN48517JANOAK2015
F05573-CN48517FEBOAK2015
F05573-CN48517MAROAK2015
F05573-CN48517APROAK2015
F05573-CN48517APROAK2015(duplicate)
私はA2から、列Aの値を見ていきますマクロを作成しようとしています:(列内の行数)を、文字列に含まれる重複する値のリストを返すには "宣言しましたstrMyDupList "である。基本的に、少なくとも1つの重複がある場合、msgboxがポップアップし、新しいシートが列のアドレスと値で作成され、シート全体に横方向ではなく、すべての値がコンマで区切られて一覧表示されます。そのような:
Address value
$A$5 F05572-CN48517NOVOAK2015
$A$13 F05573-CN48517APROAK2015
私のコードです:
If strMyDupList <> "" Then
MsgBox "The following entries have been used more than once:" & vbNewLine & strMyDupList
Worksheets.Add.name = name
Worksheets(name).Range("A1").Value = "Location"
Worksheets(name).Range("B1").Value = "Value"
' Worksheets(name).Range("A2:C2").Value = Split(strMyDupList, ",")
Worksheets(name).Range("B4:B6") = Split(Application.WorksheetFunction.Transpose(strMyDupList), ",")
結果は、私は水平から垂直に転置値を得ることができると思っている、しかし、このコードで、それだけでFIRSTを返しています文字列内の値のリストの値なので、それが戻っていますが:
Address value
$A$5 F05572-CN48517NOVOAK2015
$A$5 F05572-CN48517NOVOAK2015 (should be F05573-CN48517APROAK2015)
私はUBound
Resize
で仕事ができる見てきましたが、構文が働くか、どのように私は考えています 中古。誰かを助けることができる?
ありがとうございました
返信いただきありがとうございますが、私はデータから重複を除外しようとしていません。むしろ、私は重複を特定しようとしているので、なぜ他のデータセットと相互参照することができます。このマクロを使うと、簡単にできるはずです。 –
もちろん、私の更新されたコードを見てください。簡単な変更。 ArrayListは非常に強力で、奇妙な方法を彼らはそれを非難しました。私はおそらくあなたがListsとLinqにアクセスできるC#でアドインに移動することをお勧めします。これはずっと簡単でした。私があなたのコードベース全体を動かすこととdevsを訓練することが全く異なる問題だと私は理解していますが。 – GibralterTop