2

以下の表 A に示すように、何千ものエントリを含む Excel シートがあります。ここで、要件が変更されたため、表 B に示すように、「名前」ごとに 3 つの「タグ」を追加したいと考えています。たとえば、名前 n1 にはタグ t1、t2、t3、および t4 があり、各タグに対応しています。別コメントになります。(A) これを達成する 1 つの方法は、各列に 3 つの新しい行を追加することです (3 つの空白行があっても問題ありません) (B) 別の方法は、同じファイルに各タグに対応する 3 つのワークシートを追加することです。(C) 3 番目の方法は、Tag 列にフィルタを適用することです...

誰かが上記の (A) を自動化する方法を提案してもらえますか? (マクロコードをいただければ幸いです)そして、誰かが(C)..または問題に対するエレガントな解決策を実行するコードを共有できるとさらに良いでしょう。ありがとうございました!

表 A

Name id Tag     Comment
n1    1  t1    my t1 comment for id 1
n2    2  t1    my t1 comment for id 2
n3    3  t1    my t1 comment for id 3
n4    4  t1    my t1 comment for id 4
n5    5  t1    my t1 comment for id 5

表 B

Name  id  Tag         Comment
n1    1   t1        my t1 comment for id 1*
n1    1   t2        my t2 comment for id 1
n1    1   t3        my t3 comment for id 1
n1    1   t4        my t4 comment for id 1
n2    2   t1        my t1 comment for id 2
n3    3   t1        my t1 comment for id 3
n4    4   t1        my t1 comment for id 4
n5    5   t1        my t1 comment for id 5
4

1 に答える 1

0

テーブルでこのコードをテストしたところ、動作するはずです

Sub NewRows()

Dim i As Long
Dim k As Long
Dim lastRow As Long
Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Set ws = wb.Sheets("test")
lastRow = Range("B" & Rows.Count).End(xlUp).Row ' I assume that your unique ID's are in column B

For i = lastRow To 2 Step -1 '3 is the first row where you have data
    For k = 4 To 2 Step -1 'Amount of new lines you want to insert
          ws.Rows(i + 1).Insert shift:=xlShiftDown ' insert row
          ws.Range("A" & i + 1).Value = ws.Range("A" & i).Value 'copy value in column A from original entry
          ws.Range("b" & i + 1).Value = ws.Range("b" & i).Value 'copy value in column A from original entry
          ws.Range("C" & i + 1).Value = "T" & k 'update tag info for each new line
          ws.Range("d" & i + 1).Value = "this is " & ws.Range("C" & i + 1).Value & " comment for " & ws.Range("A" & i + 1).Value

    Next k
Next i


End Sub

列 D にコメントを入力する方法はわかりませんが、同じ原則が適用されます。

于 2015-09-21T18:59:29.900 に答える