For...Next döngüsü, bir işlemi belirli bir aralıkta tekrar tekrar yaptırmanızı sağlar — örneğin bir sütundaki tüm sayıları tek tek toplamak için idealdir.
Temel Yapı
Sub ToplamHesapla()
Dim toplam As Double
Dim i As Integer
toplam = 0
For i = 2 To 45
toplam = toplam + Worksheets("Sayfa1").Range("D" & i).Value
Next i
Worksheets("Sayfa1").Range("G2").Value = toplam
End Sub
Dim toplam As Double: bir değişken tanımlar (ondalıklı sayı tutabilen tip)."D" & i: birleştirme operatörü (&) ile"D"metniniisayısıyla birleştirip her döngüdeD2,D3,D4... şeklinde dinamik bir hücre referansı üretir.- Döngü her adımda
i'yi bir artırarakNext i'ye kadar devam eder.
Ortalama Hesaplarken Dikkat: Sıfıra Bölme Hatası
Toplamı sayı adedine bölerken, sayı sayacını da bir döngüyle (yalnızca gerçekten sayısal olan hücreleri sayarak) hesaplamazsanız Division by Zero hatası alabilirsiniz:
Sub OrtalamaHesapla()
Dim toplam As Double
Dim sayi As Integer
Dim i As Integer
toplam = 0
sayi = 0
For i = 2 To 5
If IsNumeric(Worksheets("Sayfa1").Range("D" & i).Value) Then
toplam = toplam + Worksheets("Sayfa1").Range("D" & i).Value
sayi = sayi + 1
End If
Next i
If sayi > 0 Then
Worksheets("Sayfa1").Range("G3").Value = toplam / sayi
End If
End Sub
IsNumeric(...), bir hücrenin gerçekten sayısal bir değer içerip içermediğini kontrol eder — boş veya metin içeren hücreleri döngü dışında bırakarak hem yanlış sonuçları hem de sıfıra bölme hatasını önler.
Sırada Ne Var?
Sırada, AutoFilter ve olay tabanlı kodlamayla çalışan dinamik bir arama konsolu yapacağız.