السلام وعليكم ورحمة الله وبركاته
إخواني وأحبابي في الله
أقدم لكم موضوع يخص
فصل الكلمات أوالنصوص باللغة الإنجليزية من داخل نص متداخل به نصوص عربية وإنجليزية ..
وهذه صورة توضح في العمود الأول البيانات التي تحتوي على النصوص المتداخلة وفي العمود الثالث النتيجة المتوقعة بعد تنفيذ الكود
وإليكم الكود المستخدم في عملية الفصل
CODE
Sub Extract_English_Words_Using_Regex()
Dim a As Variant
Dim i As Long
With Cells(1).CurrentRegion.Resize(, 3)
a = .Value
With CreateObject("VBScript.RegExp")
.Global = True
For i = 1 To UBound(a, 1)
.Pattern = "[^w_ ]+"
a(i, 3) = Trim$(.Replace(a(i, 1), ""))
Next i
End With
.Value = a
End With
End Sub
شرح الكود باختصار ..
يتم تخزين النطاق بالكامل في مصفوفة مضافاً إليه عمود النتائج لذا تجد استخدام Resize وتحديد عدد الأعمدة التي سيتم التعامل معها وهي 3 أعمدة
حيث أن العمود الأول والمشار إليه في الكود بـ 1 يشير إلى عمود البيانات ، والعمود الثالث والمشار إليه في الكود بـ 3
ويتم إنشاء كائن VBScript.RegExp حيث يستخدم في استخراج نصوص بشكل معين ، من خلال الـ Pattern أو ما يسمى بالنمط
رابط الملف من هنا
أرجو أن يفيدكم الموضوع
كان معكم أخوكم في الله / ياسر خليل أبو البراء