3

すべてのインスタンス "<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 の設定と関係がありますか?

4

1 に答える 1

0

やってみました:

Cells.Replace What:="<br/>", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
于 2012-08-22T11:06:18.643 に答える