人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAについて質問です。


アクティブブック内の最初のシート(つまりsheet(1)のこと)の
A列に記入されている文字列が、
そのブック内の最初と最後のシートを除く
全てのシートのN列に記入されている文字列がひとつでも完全に合致した場合、
合致した文字列の行を削除するというマクロを作成してください。

(例)
Sheet(1)のA列にはプロ野球のセリーグ全球団の名前が入っていたとします。
Sheet(2)以降のN列にはパリーグもあわせた12球団の名前が入っているとします。
例えばSheet(3)のN5に「広島東洋カープ」、Sheet(5)のN8に「横浜ベイスターズ」があった場合、
Sheet(3)の5行目とSheet(5)の8行目を削除するというものです。

ただしSheet(1)のA列にある文字列が「横浜ベイスターズ」ではなく「横浜」であった場合、
つまりそれぞれの文字列が完全に合致しなければ行は削除されないということとにご留意ください。

以上、よろしくお願いします。


●質問者: taroemon
●カテゴリ:コンピュータ
✍キーワード:VBA ひとつ アクティブ エクセル セリーグ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●80ポイント
Sub Macro1()
 Dim LastRow1 As Long
 Dim LastRow2 As Long
 Dim i, j, k As Long
 
 LastRow1 = Worksheets(1).Range("A65536").End(xlUp).Row
 For i = 2 To Worksheets.Count - 1
 LastRow2 = Worksheets(i).Range("N65536").End(xlUp).Row
 For j = 1 To LastRow1
 If Worksheets(1).Cells(j, 1).Value <> "" Then
 For k = 1 To LastRow2
 If Worksheets(1).Cells(j, 1).Value = Worksheets(i).Cells(k, 14).Value Then
 Worksheets(i).Rows(k & ":" & k).Delete shift:=xlUp
 k = k - 1
 End If
 Next k
 End If
 Next j
 Next i
End Sub
◎質問者からの返答

ご回答ありがとうございます。

今回もうまくいきました。


もっと長いものになると思ってましたが、

すごくスマートにできるんですね。正直うらやましいです。


また教えてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ