• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Bir metindeki sayıları diğer karekterlerden ayırma

Katılım
18 Temmuz 2005
Mesajlar
4
Aşağıdaki fonksiyonda girilen bir karışık metindeki sayıları ayırıp yanyana birleştirerek oluşan sayıyı döndürmeye çalıştım.

Ancak hata veriyor.

Yardım rica.





Function AYIR(Text As Characters) As Double
Dim LengthText, I, Kar As Integer

'Metinin uzunluğunu bul
LengthText = Len(Text)

'Metinin her karekterini tek tek sına
For I = 1 To LengthText
Kar = Mid(I, 1)

'Her bir karekterin sayı olduğunu sına
If Kar * 1 >= 0 Then

' Sayıları birleştir
AYIR = AYIR & Kar
Else

'virgülleri koru
If Kar = "," Then
AYIR = AYIR & Kar
End If
Next I
End Function
 
If Kar * 1 >= 0 Then

satırını

If isnumeric(Kar) then

ile değiştirmeyi deneyin.
 
Function AYIR(TEXT)
For X = 1 To Len(TEXT)
Kar = Mid(TEXT, X, 1)
If (Asc(Kar) < 48 Or Asc(Kar) > 57) And 44 <> Asc(Kar) Then Kar = ""
AYIR = AYIR + Kar
Next
End Function
 
Fonksiyonu aşağıdaki hale getirdim, ancak compile ederken Next i tanımıyır döngü hatası veriyor.

Function AYIR(Text As String) As Double
Dim I As Integer
Dim Kar As String
'Metinin her karekterini tek tek sına
For I = 1 To Len(Text)
Kar = Mid(Text, I, 1)
'Her bir karekterin sayı olduğunu sına
If IsNumeric(Kar) = True Then
' Sayıları birleştir
AYIR = AYIR & Kar
Else
'noktaları koru
If Kar = "." Then
AYIR = AYIR & Kar
End If
Next
End Function
 
Function AYIR(Text As String) As Double
Dim I As Integer
Dim Kar As String
'Metinin her karekterini tek tek sına
For I = 1 To Len(Text)
Kar = Mid(Text, I, 1)
'Her bir karekterin sayı olduğunu sına
If IsNumeric(Kar) = True Then
' Sayıları birleştir
AYIR = AYIR & Kar
Else
'noktaları koru
If Kar = "." Then
AYIR = AYIR & Kar
End If
End If
Next
End Function
 
Alternatif olması açısından;

Kod:
Function Ayir2(Text As String) As Double
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "[^0-9,]"
Ayir2 = RegExp.Replace(Text, "")
Set RegExp = Nothing
End Function
 
Son düzenleme:
Raider' Alıntı:
Alternatif olması açısından;

[vb:1:c9a2301ebb]Function Ayir2(Text As String) As Double
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "[^0-9,]"
Ayir2 = RegExp.Replace(Text, "")
Set RegExp = Nothing
End Function
[/vb:1:c9a2301ebb]

Zeki şey. Geldiğin belli oldu. :mrgreen:
Hoş geldin. Umarım tatil istediğin gibi geçmiştir.

Bu arada sanırım bende 2 hafta tatile çıkıyorum.
 
ALPEN' Alıntı:
....
Bu arada sanırım bende 2 hafta tatile çıkıyorum.

Sana da iyi tatiller dilerim, bol bol dinlen, kendine iyi bak.
 
keman tarafından gönderildi
doğru yere yazıp yazmadıgımı bılmıyorum ama bana cok ama cok acıl bırs sekılde yardımcı olabılırmısınız.ben " ULKER YUPO SEKERLEME 170GR BEN10 " bu metinde gecen 170 gr ı metinden ayırmak ıstıyorum yanı bunun gibi 40.000 adet urun var ve bunları tek tek yazmak çok zor olacak birkaç formul yazdım ama olmadı.en son buldugum formul bu ama işe yaramadı " =1*PARÇAAL(A5;KAÇINCI(DOĞRU;ESAYIYSA(1*PARÇAAL(A5; SATIR($1:$9);1));0);BAĞ_DEĞ_SAY(1*PARÇAAL(A5;SATIR ($1:$9);1)))" çok acil arkadaslar.şimdiden teşekkürler
 
Geri
Üst