COL AにCOL Bから欠落している値があるとしましょう。欠落しているかどうかを見つけてから、行を削除してシフトアップしたいとします。構造は次のようになります
ID | INFO1 | INFO2 | INFO3 ------------ ID2 | INFO1 | INFO2 | INFO3
50 | XXXXX | XXXXX | XXXXX ------------ 50 | XXXXX | XXXXX | XXXXX
51 | XXXXX | XXXXX | XXXXX ------------ 51 | XXXXX | XXXXX | XXXXX
52 | XXXXX | XXXXX | XXXXX ------------ 52 | XXXXX | XXXXX | XXXXX
53 | XXXXX | XXXXX | XXXXX ------------ 53 | XXXXX | XXXXX | XXXXX
54 | XXXXX | XXXXX | XXXXX ------------ 55 | XXXXX | XXXXX | XXXXX
55 | XXXXX | XXXXX | XXXXX ------------ 56 | XXXXX | XXXXX | XXXXX
そして、私の問題が始まります。これまでのところ、私はこれを管理してきました:
Sub Teste()
Dim rngA As Range
Set rngA = Range("F2")
Set rngB = Range("H2")
While rngA.Value <> ""
Columns("H:H").Select
Set Cell = Selection.Find(What:=rngA.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Cell Is Nothing Then
rngA.Value = ""
Set rngA = rngA.Offset(1)
Else
Set rngA = rngA.Offset(1)
End If
Wend
While rngB.Value <> ""
Columns("F:F").Select
Set Cell = Selection.Find(What:=rngB.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Cell Is Nothing Then
rngB.Value = ""
Set rngB = rngB.Offset(1)
Else
Set rngB = rngB.Offset(1)
End If
Wend
End Sub
これにより、ID2 で欠落している ID の値を見つけて空の値に置き換えることができますが、欠落している ID を削除したい | 情報1 | INFO2| INFO3 それらを削除して行を上に移動します。私の人生では、それを行う方法が見つかりません。(コードは例を反映していません)
誰かがそれを行う方法について考えを持っていますか?