本日、重ねての質問、失礼致します。
下記のように空の値を検出した場合、行ごと削除しているのですが、
ActiveSheet.UsedRangeとなっており、行を消したいシートがアクティブな状態出なければ
適切に処理されません。
他のシートで実行する(非アクティブ)の場合に対応するために
With Range("A1", ws.UsedRange)
と置き換えたのですが以下のエラーが出力されてしまいます。
実行エラー ‘1004’:
’Range’ メソッドは失敗しました:’_Global’オブジェクト
UsedRangeはWorksheet配下のプロパティであるため、非アクティブでも上記のコードで
実行できると思ったのですが
解決方法が分からず、問い合わせをさせて頂きました。
ご存知の方がいらっしゃれば、お力添えの程、宜しくお願い申し上げます。
vba
1Dim ws As WorkSheet 2Set ws = ThisWorkbook.Worksheets("hoge") 3 4'中略 5 With Range("A1", ActiveSheet.UsedRange).Columns("A:F") ' 空の列削除 6 Set d = .Offset(.Rows.Count).Rows(1) 7 For Each r In .Rows 8 If WorksheetFunction.CountBlank(r) = r.Cells.Count Then Set d = Union(d, r) 9 Next 10 End With 11 d.Delete xlUp 12'中略
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/18 08:11