Bu makale, bir sütunda bir değer bulmak için VBA'nın nasıl kullanılacağını gösterecektir.
Belirtilen ölçütlerle eşleşen aralıktaki tüm hücreleri bulmak için VBA'da bir değerler sütunu arasında dolaşmak için Range.Find'i kullanabiliriz.
Range.Find ve Range.FindNext ile bir sütunda döngü yapma
Aşağıdaki örnekte, sütundaki veriler arasında dolaşıyoruz ve "Gecikmiş" kelimesini arıyoruz. Kelimeyi bulduğunda, hücre metninin rengini kırmızıya çevirerek hücreyi işaretleyecektir. Daha sonra, bir sonraki hücreye geçmek ve kelimeyi aramaya devam etmek için Range.FindNext yöntemini kullanacağız ve belirtilen hücre aralığının sonuna kadar döngüyü sürdüreceğiz.
1234567891011121314151617 | Alt FindLoop()Dim strFirstAddress As StringDim rngFindValue As AralığıDim rngAralık Olarak AraDim rngAralık Olarak BulSet rngFind = ActiveSheet.Range("F1:F17")Set rngSearch = rngFind.Cells(rngFind.Cells.Count)Set rngFindValue = rngFind.Find("Gecikmiş", rngSearch, xlValues)rngFindValue Değilse O Zaman Hiçbir Şey DeğilsestrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedYapmakrngFindValue = rngFind.FindNext(rngFindValue) olarak ayarlayınrngFindValue.Font.Color = vbRedrngFindValue.Address = strFirstAddress'e Kadar DöngüBitirAlt Bitiş |
Kod çalıştığında, değişkende verilerin bulunduğu ilk hücrenin adresini kaydeder. strFirstAdres ve metnin rengini kırmızıya değiştirir. Ardından, gerekli verileri içeren sonraki hücreyi bulmak için bir döngü oluşturulur. Değer bulunduğunda, metnin rengi kırmızı olarak değiştirilir ve ardından değerin bulunduğu hücrenin adresi dize ile karşılaştırılır. strFirstAdres. Bunlar aynı değilse, “Gecikmiş” kelimesinin her bir örneğini bularak döngü devam eder. Döngü hücre aralığının sonuna ulaştığında (yani F17), aralığın başlangıcından (F1) başlayacak ve döngüye devam edecektir. İkinci kez F3 hücre adresine ulaştığında, saklanan değişkenle aynı olduğu için strFirstAdres, döngü duracaktır.