今年一発目の質問です。よろしくお願い致します。
作業後の差分だけを抜き出したら、空白ができました。
この空白を消して、上に詰めるには、どうしたらいいでしょう?
vba
1Range(cells(x1,y2),cells(x2,y2)).Delete Shift := xlShiftUp
を使えばいいのは、わかっているのですが・・・・
一時的に空白行のアドレス番地を格納しておいて削除するとかですかね?
ちなみに、まだ、コレクションとか、配列は美学習です。
(まだまだ超初心者ですので・・・)
ちなみに全体のコードは以下です。
vba
1'差分抽出マクロ 2 3Sub test1() 4Dim i As Long '作業前用カウンタ変数 5Dim j As Long '作業後用カウンタ変数 6Dim diff As Long '差分書き出し用変数 7Dim A_MaxRow As Long 8Dim D_MaxRow As Long 9 10'作業前のMACを元に作業後のMACアドレスの比較を行う 11i = 3 12 Do While Cells(i, 1).Value <> "" 13 j = 3 14 Do While Cells(j, 4).Value <> "" 15 If Cells(i, 1) = Cells(j, 4) Then 16 Cells(i, 3).Value = "after_match" '作業後のMAC有り 17 End If 18 j = j + 1 19 Loop 20 i = i + 1 21 Loop 22 23'作業後のMACを元に作業前のMAアドレスんの比較を行う 24j = 3 25 Do While Cells(j, 4).Value <> "" 26 i = 3 27 Do While Cells(i, 1).Value <> "" 28 If Cells(j, 4) = Cells(i, 1) Then 29 Cells(j, 6).Value = "befor_match" 30 End If 31 i = i + 1 32 Loop 33 j = j + 1 34 Loop 35 36'xx_matchが無いものが差分なので別セルへ抜き出す 37'作業前でafter_matchが無いMACとホスト名を別セル(h列、i列)へ抜き出す 38diff = 3 39A_MaxRow = Cells(Rows.Count, 1).End(xlUp).Row 40 41 For i = 3 To A_MaxRow 42 If Cells(i, 3).Value <> "" Then 43 44 Else 45 Range(Cells(i, 1), Cells(i, 2)).Cut Destination:=Range(Cells(diff, 8), Cells(diff, 9)) 46 diff = diff + 1 47 End If 48 Next i 49 50 51'作業後でbefor_matchが無いMACとホスト名を別セル(j列、l列)へ抜き出す 52diff = 3 53D_MaxRow = Cells(Rows.Count, 4).End(xlUp).Row 54 55 For j = 3 To D_MaxRow 56 If Cells(j, 6).Value <> "" Then 57 58 Else 59 Range(Cells(j, 4), Cells(j, 5)).Cut Destination:=Range(Cells(diff, 10), Cells(diff, 11)) 60 diff = diff + 1 61 End If 62 Next j 63 64 65'空白行を削除して上に詰める 66 67'まったくわからない~ 68 69End Sub 70
ご教授下さい。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/01 22:52