بسم الله الرحمن الرحيم
اقدم لكم دالة معرفة لفصل القيم النصية عن القيم الرقمية
كل ما علينا هو ان نضيف هذ الكود للدالة المعرفة بموديل كما بالصورة
كود الدالة
Public Function SplitText(WorkRng As Range, Number As Boolean) As String
Dim xLen As Long
Dim xStr As String
xLen = VBA.Len(WorkRng.Value)
For i = 1 To xLen
xStr = VBA.Mid(WorkRng.Value, i, 1)
If ((VBA.IsNumeric(xStr) And Number) Or (Not (VBA.IsNumeric(xStr)) And Not (Number))) Then
SplitText = SplitText + xStr
End If
Next
End Function
طريقة كتابة الدالة
للقيم النصية
=SplitText($A2;0)
أو
=SplitText($A2;False)
للقيم الرقمية
=SplitText($A2;1)
أو
=SplitText($A2;TRUE)
الكود المستخدم للقيمتين
لتحميل الملف اضغط هنا
ياسر العربي
للقيم النصية
=SplitText($A2;0)
أو
=SplitText($A2;False)
للقيم الرقمية
=SplitText($A2;1)
أو
=SplitText($A2;TRUE)
كود اخر لفصل كل قيمة على حدا
الكود المستخدم للقيمتين
Sub split_Text()
Dim xLen As Long
Dim xStr As String
Dim Rng As Range
For Each Rng In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
xLen = VBA.Len(Rng.Value)
Rng.Offset(, 4).ClearContents
For i = 1 To xLen
xStr = VBA.Mid(Rng.Value, i, 1)
If Not (VBA.IsNumeric(xStr)) And Not (Number) Then
Rng.Offset(, 4) = Rng.Offset(, 4) + xStr
End If
Next i
Next Rng
End Sub
Sub Split_NUM()
Dim xLen As Long
Dim xStr As String
Dim Rng As Range
For Each Rng In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
xLen = VBA.Len(Rng.Value)
Rng.Offset(, 5).ClearContents
For i = 1 To xLen
xStr = VBA.Mid(Rng.Value, i, 1)
If (VBA.IsNumeric(xStr)) And Not (Number) Then
Rng.Offset(, 5) = Rng.Offset(, 5) & xStr
End If
Next i
Next Rng
End Sub
لتحميل الملف اضغط هنا
ياسر العربي
الإبتساماتإخفاء