私の仕事の出発点を探しています。
状況:
同じ構造を持ち、とりわけ次の列を含む 3 つの Excel ワークシートがあります。
|ID|SubID|SubName|Description|Link1|Link2|
|1|1|SubName 1|Desc SubName1|P00001|P00002|
|1|2|SubName 2|Desc SubName2|P00002|P00003|
|2|1|SubName 1|Desc SubName1|P00001|P00002|
セル内に複数の P 番号を含む行があります。
|3|1|SubName 1|Desc SubName1|P00001,P00002,P00003|P00001,P00002|
ここで、Link1 列を調べて、最初の 3 つの列を並べ替えた順序でこれらの値を「Link1」ワークシートに次のように配置します。
|P-Number|ID|SubID|SubName|
|P00001|1|1|SubName 1|
|P00001|2|1|SubName 1|
|P00001|3|1|SubName 1|
|P00002|1|2|SubName 2|
|P00002|3|1|SubName 1|
|P00003|3|1|SubName 1|
また、Link2 列でも同じことを行い、値を別のワークシートに配置したいと思います。
次のステップは、新しいシートの P-Number をリンクのように機能する文字列と連結することです。それが私がこれまで取り組んできたことです。もう 1 つのアイデアは、SubName をクリック可能にして、3 つのワークシートのいずれかで対応する名前にジャンプさせることです。
マクロが正しい選択なのか、それともピボット テーブルでもうまくいくのかはわかりません。
どんなアイデアでも大歓迎です。ありがとう。
UPDATE : この概念をメイン マクロに組み込み、上記の列も処理しようとしました。ただし、この部分でいくつかのループが実行されているため、出力行は列の最後の P 番号で上書きされます。私はこのサブを使用します:
Sub PrintArray(Data As Variant, Cl As Range)
Cl.Resize(UBound(Data, 1), UBound(Data, 2)) = Data
End Sub
そして、このテストの呼び出し:
PrintArray NewArray, ActiveWorkbook.Worksheets("Link 1").Range("A2")
コード内でループを使用せずに、各 P 番号を新しいシートに「保存」するにはどうすればよいですか?