前提
指定列に取消線のある行を削除するプログラムを作っています。
データをクリアした(全くない状態にした)あとに実行すると以下の★マークのところでエラー停止してしまいます…
追記
タイトルもかえました。
実現したいこと
- エラーを回避したいです。
(データがない状態でも)
発生している問題・エラーメッセージ
実行時エラー 91「オブジェクト変数または With ブロック変数が設定されていません。
該当のソースコード
Sub 取消行削除() Dim intRowEnd As Integer '最終行番号を格納 Dim i As Integer '行カウンタ Set s = ThisWorkbook.Sheets("旧データ") '最終行番号の取得 If s Is Nothing Then MsgBox "完了" Else ★ intRowEnd = (s.Columns(23).Find("番号").Row) - 2 '番号と書かれているセルの二つ上 i = intRowEnd '最終行番号を行カウンタにセット Do While i >= 5 '5行めから '旧データ図番列に取消線のある行削除 If Cells(i, 36).Font.Strikethrough = True Then Rows(i).Delete End If i = i - 1 Loop MsgBox "完了" End If End Sub
試したこと
intRowEnd = (Sheets("旧データ").Columns(23).Find("番号").Row) - 2
とだけ記載していたところを
Set s = ThisWorkbook.Sheets("旧データ")
intRowEnd = (s.Columns(23).Find("番号").Row) - 2
としました
↓
データがない状態で実行するとこのエラーが起きるとわかったので分岐してみました(質問のコードも修正しました)…がまだデータがないとおなじエラーがでます。
データがあると動きます
補足情報
エクセル2013です

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/28 06:24