Bu bölümde hücre değerindeki tüm karakterlere tek tek bakıp yazıları ve sayıları ayırma işlemini gerçekleştiren bir fonksiyon prosedürünü inceleyeceğiz.
İçerik
Sadece Yazıları Ayırma
Aşağıdaki makro kodu hücre değerindeki tüm karakterlere tek tek bakar ve içinden sadece yazıyı çıkartır:
Function makro_yazi(HucreDegeri) As String
Dim i As Long 'loop
Dim t As String 'karakterleri çıkarmak için
HucreDegeri = Trim(HucreDegeri)
For i = 1 To Len(HucreDegeri)
If Not IsNumeric(Mid(HucreDegeri, i, 1)) Then
t = t & Mid(HucreDegeri, i, 1)
End If
Next i
makro_yazi = t
End Function
Code language: VB.NET (vbnet)
Sonuç:
Sadece Sayıları Ayırma
Aşağıdaki makro kodu hücre değerindeki tüm karakterlere tek tek bakar ve içinden sadece sayıları çıkartır:
Function makro_sayi(HucreDegeri) As Variant
Dim i As Long
Dim n As Double
HucreDegeri = Trim(HucreDegeri)
For i = 1 To Len(HucreDegeri)
If IsNumeric(Mid(HucreDegeri, i, 1)) Then
n = n & Mid(HucreDegeri, i, 1)
End If
Next i
If n > 0 Then
makro_sayi = n
Else
makro_sayi = ""
End If
End Function
Code language: VB.NET (vbnet)
Sonuç:
Yazıları ve Sayıları Ayırma
Aşağıdaki makro kodu aralıktaki tüm hücrelere tek tek bakar ve fonksiyon prosedürlerini kullanarak bir sütun sağa hücrenin içerdiği yazıyı, 2 sütun sağa hücrenin içerdiği sayıları çıkarır:
Sub makro_yazi_sayi_ayirma()
Dim Aralik As Range
Dim Hucre As Range
Set Aralik = Range("A2", "A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each Hucre In Aralik
Hucre.Offset(0, 1).Value = makro_yazi(Hucre.Value)
Hucre.Offset(0, 2).Value = makro_sayi(Hucre.Value)
Next Hucre
End Sub
Code language: VB.NET (vbnet)
Sonuç: