কোনো সংকেত নেই? তবে এটি এত সংক্ষিপ্ত এবং সহজ এবং সুন্দর এবং ... :(
আপনার 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 টি যুক্তিযুক্ত ব্যবহারকারীর দ্বারা সংজ্ঞায়িত ফাংশন । প্রথমটি হল চেক করা সেল the দ্বিতীয়টি হল RegEx প্যাটার্ন যাচাই করা। যদি প্যাটার্নটি আপনার ঘরের কোনও অক্ষরের সাথে মেলে তবে এটি 1 অন্যথায় 0 এ ফিরে আসবে।
আপনি প্রথমে ALT+ সহ ভিবিএ সম্পাদক খুললে F11একটি নতুন মডিউল (!) Sertোকান এবং নীচের কোডটি পেস্ট করুন তবে আপনি এটি অন্য কোনও সাধারণ এক্সেল সূত্রের মতো ব্যবহার করতে পারেন ।
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
রেজিএক্স-এ নতুন ব্যবহারকারীদের জন্য আমি আপনার প্যাটার্নটি ব্যাখ্যা করব: [^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)