[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ロックされたセル以外を削除するVBAを複数シートにループさせたい』(もぐやん)
VBA初心者です。
50人程度の社員のタイムカードをエクセル表に転記して計算しています。
数式の入ったセルをロックし、ロックされたセル以外を選択して値をクリアする、というマクロを探し出しまして、各シートごとに同じマクロを走らせていたのですが、色々な変革を経て、一気に複数シートにループさせて削除したいと思っています。
セルの選択をループさせて、値をクリアしたら次のシートに移って…という作業だと思うのですが、1つ目のシートの処理が完了し次のシートに移ると、エラーが出て中断されてしまいます。
どなたかどこが誤っているのがご教示いただけませんでしょうか。
Dim c As Range, Target As Range Dim lRow As Long, i As Long For i = 3 To Worksheets.Count Worksheets(i).Select lRow = Cells(Rows.Count, 12).End(xlUp).Row
For Each c In Range(Cells(5, 4), Cells(lRow, 15)) If c.Locked = False Then If Target Is Nothing Then Set Target = c Else Set Target = Union(Target, c) '←(デバックではここが強調表示されます) End If End If Next If Not Target Is Nothing Then Target.Select Selection.ClearContents ActiveSheet.Range("A1").Select Next
宜しくお願い致します。
< 使用 Excel:Excel2007、使用 OS:Windows10 >
Unionセットをシートをまたがってセットし続けているから、必要に応じてリセット。 (BJ) 2019/06/19(水) 10:27
お返事ありがとうございます。
リセットですか!そうだったんですね。
Set Target = Nothing
を追加して、うまくいきました。
ありがとうございました。
(もぐやん) 2019/06/19(水) 11:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.