一覧表の特定の列に半角スペースまたは全角スペースのみで入力されているものがあればその行をClearContentsをしたいと思っています。
Criteria1に"* *"や"* *"と入力するとスペースが含まれる全てのレコードが抽出されてしまいます。
色々な組み合わせを作ってFor文で繰り返し行うくらいしかないのでしょうか?
192,000行もあるので、なるべくFor文は使いたくありません。
全角・半角スペースデータの削除をしたいということなので、抽出ではなく、単純に項目全体にTrimをかけると良いのではないでしょうか。
VBAのTrimは前後の全角スペース、半角スペースともに削除します。
19万件のFor文ではありますが、画面更新をしないようにすれば、数分程度で処理できるのではないかと思います。
Sub Sample()
MsgBox "Start"
Application.DisplayAlerts = False
Dim oA As Range
Dim oB As Range
Set oA = Range("A1:A192000")
For Each oB In oA
''(1)スペース入力されているセルのみ処理を行う
'If oB.Value <> "" And Trim(oB.Value) = "" Then
' oB.ClearContents
'End If
''(2)単純に全てのデータのTrimを行う
oB.Value = Trim(oB.Value)
Next
Set oA = Nothing
Application.DisplayAlerts = True
MsgBox "End"
End Sub
コメント(0件)