कोई कोड नहीं? लेकिन यह इतना छोटा और आसान और सुंदर है और ... :(
आपके 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 पर लौटेगा।
यदि आप पहली बार VBA संपादक को ALT+ के साथ खोलते हैं F11, तो एक नया मॉड्यूल (!) डालें और नीचे दिए गए कोड को पेस्ट करें।
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)