0

私はプログラムでExcelの「検索と置換」機能をシミュレートしようとしていますが、そうすることには一定の疑問/懸念があります。以下は私が使用しているコードで、Excelの「マクロの記録」機能を使用して記録されました。

 Selection.Replace What:=":Y", Replacement:="helloWorld", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

上記のコードで、helloWorldを「これは「鶏」です」のようなものに置き換えると、「これは「鶏」」の状況のた​​め、コードは惨めに失敗します。これを修正するには、「これは「チキン」です」のようなものが必要です。

ただし、置き換えるテキストは同じExcelシートのセルからのものです。エラーを回避するために、すでに引用符が含まれているテキストに引用符を追加するにはどうすればよいですか。

$%^&*!@#のような特殊文字についても同じことが言えます

助けてください!

4

1 に答える 1

1

置換テキストが別のセルの値からのものである場合、文字列変換を行うことについてはまったく心配しません。私がやりたいのは、置換テキストを含むセルの.ValueプロパティをReplaceメソッドのReplacement:=引数に渡すことです。そうすれば、Excelがすべての引用符とその他の文字を内部で処理します。あなたはそれについて心配する必要はありません。

このようなもの:

Sub ReplaceText()

On Error Resume Next
    Err.Clear

    'Let's say that the replacement text is in A1
    Selection.Replace What:=":Y", Replacement:=ActiveSheet.Cells(1, 1).Value, LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    'In case it's something like an error in the replacement text cell.
    'Using quotes or special characters WON'T cause an error.
    If Err.Number <> 0 Then
        MsgBox "Replacement failed; error " & Err.Number & vbCrLf & Err.Description
    End If

On Error GoTo 0


End Sub
于 2012-10-22T11:02:20.330 に答える