すべてのインスタンス "<br />" を 1 つのスペース (" ") に置き換えて、非常に大きな Excel スプレッドシートに含まれるテキストを消去しようとしています。Excel で通常の [すべて検索/置換] オプションを使用する方法と、次の非常に単純な VBA マクロを使用する方法の 2 つを試しました。
Sub CleanUp()
Application.Cells.Replace What:="<br />", Replacement:=Chr(32), LookAt:=xlPart
End Sub
どちらの場合も、次のようなエラー メッセージが表示されます。「入力した数式にエラーが含まれています。一般的な数式の問題を修正する方法については、[ヘルプ] をクリックしてください。関数の入力を支援するには、[関数ウィザード] ([数式] タブ、[関数ライブラリ] グループ] をクリックしてください。 ). 数式を入力しようとしていない場合は、等号 (=) またはマイナス記号 (-) の使用を避けるか、前に単一引用符 (') を付けます。"
もちろん、数式を入力しようとしているわけではありません。ただし、Excel が示唆するように、"<br />" の前に一重引用符を付けても問題は解決しません。
私の検索文字列にはワイルドカードが含まれていませんが (私が知る限り)、マクロでリテラル文字をいじってみて、それが役立つかどうかを確認しました。問題は解決しませんが、とにかくコードは次のとおりです。
Sub CleanUp()
Dim SearchFor As String
SearchFor = Chr$(60) & "br" & Chr$(32) & Chr$(47) & Chr$(62)
Application.Cells.Replace What:=SearchFor, Replacement:=Chr$(32), LookAt:=xlPart
End Sub
有用な事実:
- 通常の検索/置換メソッドと VBA マクロの両方を使用して、このスプレッドシート内の他の文字列を簡単に検索して置換できます。
- 「<br />」の検索と置換が可能な同様のスプレッドシートが他にもあります。
- 私の友人のコンピューターでは、両方の方法を使用して、"<br />" のすべてのインスタンスを検索して置き換えることができます。
なぜこれが起こっているのか誰にも分かりますか?Excel の設定と関係がありますか?