두 개의 SO 질문/답변을 결합하여 셀의 특수 문자를 자동으로 바꾸는 VBA를 만들었습니다 (이 예제에서는 E6).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
누구든지 내가 뭘 잘못하고 있는지 통찰력을 줄 수 있습니까?
감사합니다.
셀에 공백이 있는지 테스트하려면 if? –
나는 그것이'인터럽트가 아니라면 (타겟, 셀 (6, 5)) 아무것도 없다 '라고 생각했다. 그래서 당신은 ElseIf 셀 (6, 5) .Value = ""Then'' 타입의 것을 추가하는 것을 의미합니까? –
아니요, 해당 행은 대상 셀이 셀 (6,5)과 교차하는지 테스트합니다. 그러나 @ScottHoltzman처럼 보입니다. 당신의 대답이 있습니다. –