코드가 없습니까? 그러나 너무 짧고 쉽고 아름답고 ... :(
RegEx 패턴 [^A-Za-z0-9_-]
은 모든 셀에서 모든 특수 문자를 제거하는 데 사용됩니다.
Sub RegExReplace()
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Global = True
RegEx.Pattern = "[^A-Za-z0-9_-]"
For Each objCell In ActiveSheet.UsedRange.Cells
objCell.Value = RegEx.Replace(objCell.Value, "")
Next
End Sub
편집하다
이것은 내가 당신의 원래 질문에 도달 할 수있는 한 가깝습니다.
두 번째 코드는 =RegExCheck(A1,"[^A-Za-z0-9_-]")
2 개의 인수가 있는 사용자 정의 함수 입니다. 첫 번째는 확인할 셀입니다. 두 번째는 확인할 RegEx 패턴입니다. 패턴이 셀의 문자와 일치하면 1을 리턴하고 그렇지 않으면 0을 리턴합니다.
먼저 ALT+로 VBA 편집기를 열고 F11새 모듈 (!)을 삽입하고 아래 코드를 붙여 넣으면 다른 일반 Excel 수식과 같이 사용할 수 있습니다 .
Function RegExCheck(objCell As Range, strPattern As String)
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Global = True
RegEx.Pattern = strPattern
If RegEx.Replace(objCell.Value, "") = objCell.Value Then
RegExCheck = 0
Else
RegExCheck = 1
End If
End Function
RegEx를 처음 사용하는 사용자의 경우 패턴을 설명하겠습니다. [^A-Za-z0-9_-]
[] stands for a group of expressions
^ is a logical NOT
[^ ] Combine them to get a group of signs which should not be included
A-Z matches every character from A to Z (upper case)
a-z matches every character from a to z (lower case)
0-9 matches every digit
_ matches a _
- matches a - (This sign breaks your pattern if it's at the wrong position)