このスクリプトを見つけて、自分のニーズに合わせていくつか修正しました。しかし、私は列Aにスペースを挿入し、任意の行で列Bと一致しない場合、その後の比較は、上記の1行を追加し続ける、だからではなく、行全体のセルの値に基づいてセルを上に挿入
Sub BlankLine()
Dim Col As Variant
Dim Col2 As Variant
Dim BlankRows As Long
Dim LastRow As Long
Dim R As Long
Dim StartRow As Long
Col = "A"
Col2 = "B"
StartRow = 2
BlankRows = 1
LastRow = Cells(Rows.Count, Col).End(xlUp).Row
Application.ScreenUpdating = False
With ActiveSheet
For R = LastRow To StartRow + 1 Step -1
If .Cells(R, Col) <> .Cells(R, Col2) Then
.Cells(R, Col2).EntireRow.Insert Shift:=xlUp
End If
Next R
End With Application.ScreenUpdating = True
End Sub
を一つのセルを挿入する方法を見つけ出すことはできません偽の値。
Example: 1 1
2 3
3 4
Becomes: 1 1
2
3 3
4
ご協力いただければ幸いです!
変更する場合.Cells(R、COL)<> .Cells(R、Col2に)そして .Cells(R、col2が)シフト.EntireRow.Insert: へ= xlUpを場合.Cells(R、COL) <> .Cells(R、Col2)Then .Cells(R、Col2)。挿入Shift:= xlDown 注文と一緒に再生する必要があります。他に誰もいなくても、私は働くことができます。 –
R = StartRow To LastRowはデータセットによっては問題が発生する可能性がありますが、よりうまくいくようです。 –
ColとCol2は実際にはVariantではありません...文字列として使用しています。 – Rdster