このトピックに書きこむ |
---|
Re[2]: ループから抜けない | |
---|---|
[195713] Re[2]: ループから抜けない- ■ / 記事引用/メール受信=OFF■ □投稿者/ マクロ初心者 -(2023/05/07(22:29)) □U R L/ とおりすがり様 ありがとうございます。 LastRowは空白セルは処理されないと思っていました。 とりあえず1000行で入れてみたら正常に終わりました。 |
[195712] Re[1]: ループから抜けない- ■記事引用/メール受信=OFF■ □投稿者/ とおりすがり -(2023/05/07(18:57)) □U R L/ LastRowに1048576がセットされてて、 ループを100万回以上回っているのではないですか? デバッグ実行をご存じですか? 1ステップずつ実行させて、 各変数にセットされている値がいくつか、を確認しながら 1ステップずつ実行させれば、 原因特定は簡単かと思います。 |
[195711] ループから抜けない- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ マクロ初心者 -(2023/05/07(17:10)) □U R L/ 以下のようなマクロを設定しましたが ループから永遠に抜けられません 何処をどう修正すれば抜けますか? Dim List_Sht As Worksheet '登録されたシート Dim Del_Sht As Worksheet '廃棄データシート Dim LastRow As Long Dim i As Long '廃棄データ最終行指示 Dim J As Long '登録データ最終行指示 Dim SearchWord() As Variant 'Variantは自由な変数の設定 Set List_Sht = Workbooks("購入管理.xlsm").Sheets("登録在庫") Set Del_Sht = Workbooks("発注入力.xlsm").Sheets("入庫") 'Del_Shtの最終行取得 LastRow = Del_Sht.Range("N4:N15").End(xlDown).Row 'Del_Shtの値を配列格納 For i = 4 To LastRow ReDim Preserve SearchWord(i) SearchWord(i) = Del_Sht.Cells(i, 14) Next i 'List_Shtの最終行取得 LastRow = List_Sht.Cells(Rows.Count, 2).End(xlUp).Row Application.DisplayAlerts = False 'List_Shtをループして、Del_Shtと同じ値があったら行削除 For i = 4 To UBound(SearchWord) '最終行からループ For J = LastRow To 6 Step -1 If List_Sht.Cells(J, 2) = SearchWord(i) Then '行削除 List_Sht.Rows(J).Delete End If Next J Next i End Sub ちなみに2016です よろしくお願いします。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |