vba を使用して Excel マクロをプログラミングしたことはありません。フィルタリングが必要なデータが大量にあるため、Excel マクロで解決できる問題に直面しています。簡単です例で説明します
元のテーブル:
name1 123456789
name2 234567783 3456677889
name3 213123123
name4 123451231 123412312 1231223523
マクロを実行する必要があるのは、3 列目または 4 列目、またはその両方でデータを見つけたときです。新しい行を挿入し、列の名前と 3 列目の数値で埋めて、データがそのようになるようにします。
どのようにテーブルが想定されているか:
name1 123456789 (stays the same no data in column 3 or 4)
name2 234567783 (removes the third column data and put it in a new row)
name2 3456677889 (keeping the name that the data had)
name3 213123123 (stays the same no data in column 3 or 4)
name4 123451231 (removes the third column data and forth column data and put it in new rows)
name4 123412312
name4 1231223523
私はスクリプトで作業しようとしましたが、これまでに到達したものは次のとおりです。
Sub test()
Dim cell As Range
For Each cell In Range("d2:d40")
If Not IsEmpty(cell.Value) Then
MyAddress = ActiveCell.Row
Rows(MyAddress).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("a" & cell.Row).Select
Selection.Copy
Range("a" & cell.Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("b" & "cell.Row").Select
Application.CutCopyMode = False
Selection.Copy
Range("B" & cell.Row).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Next cell
End Sub
このマクロを実行した後、Excel がフリーズします。