私は2つのSO質問/回答を組み合わせて、セル内の特殊文字(この例ではE6)を自動的に置き換えるVBAを作成しました。Excel VBAワークシートのイベントが定数ループでスタックされました
特殊文字の置換には効果的ですが、セルを消去(E6を選択してDeleteキーを押す)すると、一定のループでスタックされます。以下
コード:
Const SpecialCharacters As String = "!,@,#,$,%,^,&,*,(,),{,[,],}" 'modify as needed
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(6, 5)) Is Nothing Then
Dim myString As String
Dim newString As String
Dim char As Variant
myString = Cells(6, 5).Value
newString = myString
For Each char In Split(SpecialCharacters, ",")
newString = Replace(newString, char, "")
Next
Cells(6, 5).Value = newString
End If
End Sub
私が起こってからループを遮断するために
Else
文を追加しようとしたが、それはうまくいきませんでした
:
Else
Cells(6, 5).Select
SO質問/回答参照:
excel VBA run macro automatically whenever a cell is changed
Removing special characters VBA Excel
誰かが私が間違っていることについての洞察を提供できますか?
ありがとうございます!
セルが空白かどうかをテストする場合は、あなたに追加しますか? –
は、私は推測する私はそれがない交差(ターゲット、細胞(6、5))されている場合は '何もThen'を処理していたものだと思いました。だからあなたは 'ElseIf Cells(6、5).Value =" "Then'型のものを追加することを意味しますか? –
いいえ、その行は、ターゲットセルがセル(6,5)と交差するかどうかをテストしています。しかし、あなたの答えは@ScottHoltzmanのように見えます。 –