08/04/2012, 14:06
For Each Değişkenimiz in Hangi Nesne
Komutlar
Gerekirse Exit For
Next Değişkenimiz
*Each: Her biri
For Each - Next döngüsü ise nesnelerle hareket eder,rakamlara ihtiyaç duymaz,nesneler topluluğuna aynı aynı eylemi uygulatmak için kullanılır.
Şimdi örneklerle daha iyi anlamaya çalışalım.
Soru;Excel hücrelerine,föngü ile 1 ile 25 arasında rakam yazdırabilirmiyiz,
Cevap:
*Rng değişkeni:Range, say:Byte
*Her bir rng değişkeni A1:A120 alanlarını ifade eder.
*Say değişkeni eşittir= say + 1
*rng değişkeni = say değişkenine
*rng değişkeni kontrolü sonucunda işlem tamamlandı ise döngü bitişi
> Say = say + 1
Döngü döndükçe sabit bir rakam olan 1 eklenecek, her dönüşü 1 olarak sayacak böylece döngü bitene kadar devam edilecek.
İlk dönüş sonucu : say = 0 + 1, say = 1 oldu.
İkinci dönüş: say = 1 + 1 = 2 oldu
...
....
Yirminci dönüş say = 19 + 1 = 20 oldu
> rng = say
Rng değişkeni A1 İle A25 hücrelerinde hareket ederken aynı zamanda her say değişkeninin sonucu oluşan rakamlara eşitlendi.
Soru;01/03/2012 ile 25/03/2012 tarihler arasındaki rakamlarım ödemelerini ifade
etmektedir.Bu tarihler arasında ödeme toplamı nasıl buluruz ?
Cevap:
*Rng değişkenin Veri Tipi = range, Hafiza değişkenin Veri Tipi = Long
*Her bir rng değişkeni B1:B25 arasında hareket eder.
*Eğer rng(B1:B25 alanı) büyük veya eşit ise Tarihe Çevir("01/03/2012") Ve rng(B1:B25 alanı) küçük veya eşit ise Tarihe Çevir ("25/03/2012")'e
*Hafiza değişkeni = hafiza + hücrelerden rng (B1:B25 alanının) değişkenin 1 hücre sağında olanları Hafiza ekleyerek devam et.
*eğer sonu
*Rng değişkeni kontrolörü
*Mesaj Kutusu İletisi:Hafiza
***********************************************************
Umarım faydalı olur arkadaşlar....
DUAYEN
Komutlar
Gerekirse Exit For
Next Değişkenimiz
*Each: Her biri
For Each - Next döngüsü ise nesnelerle hareket eder,rakamlara ihtiyaç duymaz,nesneler topluluğuna aynı aynı eylemi uygulatmak için kullanılır.
Şimdi örneklerle daha iyi anlamaya çalışalım.
Soru;Excel hücrelerine,föngü ile 1 ile 25 arasında rakam yazdırabilirmiyiz,
Cevap:
Kod:
Sub Duayen_1_25()
Dim rng As Range, say As Byte
For Each rng In Range("a1:a25")
say = say + 1
rng = say
Next rng
End Sub
*Her bir rng değişkeni A1:A120 alanlarını ifade eder.
*Say değişkeni eşittir= say + 1
*rng değişkeni = say değişkenine
*rng değişkeni kontrolü sonucunda işlem tamamlandı ise döngü bitişi
> Say = say + 1
Döngü döndükçe sabit bir rakam olan 1 eklenecek, her dönüşü 1 olarak sayacak böylece döngü bitene kadar devam edilecek.
İlk dönüş sonucu : say = 0 + 1, say = 1 oldu.
İkinci dönüş: say = 1 + 1 = 2 oldu
...
....
Yirminci dönüş say = 19 + 1 = 20 oldu
> rng = say
Rng değişkeni A1 İle A25 hücrelerinde hareket ederken aynı zamanda her say değişkeninin sonucu oluşan rakamlara eşitlendi.
Soru;01/03/2012 ile 25/03/2012 tarihler arasındaki rakamlarım ödemelerini ifade
etmektedir.Bu tarihler arasında ödeme toplamı nasıl buluruz ?
Cevap:
Kod:
Sub duayenDYN()
Dim rng As Range, hafiza As Long
For Each rng In Range("b1:b25")
If rng >= CDate("01/03/2012") And rng <= CDate("25/03/2012") Then
hafiza = hafiza + rng.Offset(0, 1)
End If
Next rng
MsgBox prompt:=hafiza
End Sub
*Her bir rng değişkeni B1:B25 arasında hareket eder.
*Eğer rng(B1:B25 alanı) büyük veya eşit ise Tarihe Çevir("01/03/2012") Ve rng(B1:B25 alanı) küçük veya eşit ise Tarihe Çevir ("25/03/2012")'e
*Hafiza değişkeni = hafiza + hücrelerden rng (B1:B25 alanının) değişkenin 1 hücre sağında olanları Hafiza ekleyerek devam et.
*eğer sonu
*Rng değişkeni kontrolörü
*Mesaj Kutusu İletisi:Hafiza
***********************************************************
Umarım faydalı olur arkadaşlar....
DUAYEN