Bu eğitim size VBA'da Her Döngü İçin Kullanmanın örneklerini gösterecektir. Genel olarak döngüler hakkında daha fazla bilgi edinmek için buraya tıklayın.
Her Döngü İçin
For Her Döngü, döngüler arasında geçiş yapmanızı sağlar. her biri bir koleksiyondaki nesne:
- Bir aralıktaki tüm hücreler
- Bir çalışma kitabındaki tüm çalışma sayfaları
- Tüm açık çalışma kitapları
- Bir çalışma sayfasındaki tüm şekiller
- Bir dizideki tüm öğeler
- ve dahası!
Her Biri İçin: Temel Örnekler
Bu örnekler, farklı nesne türleri arasında döngü yapmak için For Her döngülerinin nasıl ayarlanacağını gösterecektir.
Hücreler Arası Döngü
Bu prosedür, A1:A10 aralığındaki her hücrede döngü yaparak hücreyi kendisine eşit olarak ayarlayacaktır.
12345678 | Alt ForEachCell()Dim Hücre Aralık OlarakSayfalardaki Her Hücre İçin("Sayfa1").Range("A1:A10")Hücre.Offset(0, 1).değer = Hücre.değerSonraki HücreAlt Bitiş |
Sayfalarda Döngü
Bu prosedür, bir Çalışma Kitabındaki her bir sayfa arasında dolaşarak her bir sayfayı gizleyecektir.
12345678 | Alt ForEachSheets()Dim ws As Çalışma SayfasıSayfalardaki Her ws içinws.Visible = DoğruSonraki SayfaAlt Bitiş |
Çalışma Kitaplarında Döngü
Bu prosedür, her bir çalışma kitabını kapatarak her birini kapatacaktır.
12345678 | Alt ForEachWorkbooks()Çalışma Kitabı Olarak Dim wbÇalışma Kitaplarında Her wb içinwb.KapatSonraki wbAlt Bitiş |
Şekillerde Döngü
Bu prosedür, Sayfa1'deki her bir şekil arasında dolaşarak her birini silecektir.
12345678 | Alt ForEachShape()Dim Shp Şekil OlarakHer Shp İçin Sayfalarda("Sayfa1").ŞekillerShp.SilSonrakiAlt Bitiş |
Grafiklerde Döngü
Bu prosedür, her birini silerek Sayfa1'deki her bir Grafikte dolaşacaktır.
12345678 | Alt ForEachCharts()Dim cht As ChartObjectHer cht için Sheets("Sheet1").ChartObjectscht.SilSonraki ktAlt Bitiş |
PivotTable'larda Döngü
Bu yordam, Sayfa1'deki her PivotTable'da dolaşacak ve her birini temizleyecektir.
12345678 | Alt ForEachPivotTables()PivotTable olarak karartma pvtSayfalarda("Sayfa1").PivotTable'larda Her pvt içinpvt.ClearTableSonraki özellikAlt Bitiş |
Tablolarda Döngü
Bu prosedür, her birini silerek Sayfa1'deki her bir Tablo arasında dolaşacaktır.
12345678 | Alt ForEachTables()Dim tbl As ListObjectSayfalardaki Her tbl için("Sayfa1").ListObjectstbl.SilSonraki tblAlt Bitiş |
Dizideki Öğeler Arasında Döngü
Bu prosedür, bir Dizideki her bir öğe arasında dolaşacak, her değeri bir mesaj kutusunda gösterecek,
12345678910 | Alt ForEachItemInArray()Dim arrValue As VaryantVaryant Olarak Öğeyi KarartarrValue = Array("Öğe 1", "Öğe 2", "Öğe 3")arrValue'daki Her Öğe İçinMesaj Kutusu ÖğesiSıradaki eşyaAlt Bitiş |
Sayılarda Döngü
Bu prosedür, bir Dizideki her sayı arasında dolaşacak, her değeri bir mesaj kutusunda gösterecek,
12345678910111213 | Alt ForEachNumberInNumbers()Dim arrNumber(1 - 3) As IntegerDim num Varyant OlarakdiziSayı(1) = 10arrNumber(2) = 20arrNumber(3) = 30arrNumber'daki her sayı içinMesaj Kutusu NumarasıSonraki sayıAlt Bitiş |
Her Döngü Oluşturucu için
Bu makaledeki örnekler, Döngü Oluşturucu bizim VBA Eklentisi: Otomatik Makro.
NS Döngü Oluşturucu nesneler arasında dolaşmak için kod oluşturmayı çok kolaylaştırır. Otomatik Makro ayrıca birçok başka içerir Kod Üreticileri, Kapsamlı Kod Kitaplığı, ve güçlü Kodlama Araçları.
Her biri için - Eğer
Nesnelerin belirli ölçütleri karşılayıp karşılamadığını test etmek için Döngüler içindeki If İfadelerini de kullanabilirsiniz, yalnızca ölçütleri karşılayan nesneler üzerinde eylemler gerçekleştirin. Bir aralıktaki her hücrede döngü oluşturmaya bir örnek:
Aralıktaki Her Hücre İçin - Eğer
1234567891011121314 | Alt If_Loop()Aralık olarak Hücreyi KarartAralıktaki Her Hücre İçin("A2:A6")Cell.Value > 0 iseCell.Offset(0, 1).Value = "Pozitif"ElseIf Cell.Value < 0 O zamanCell.Offset(0, 1).Value = "Negatif"BaşkaCell.Offset(0, 1).Value = "Sıfır"BitirSonraki HücreAlt Bitiş |
Her Ortak Örnek için
Tüm Çalışma Kitaplarını Kapat
Bu prosedür, değişiklikleri kaydederek tüm açık çalışma kitaplarını kapatacaktır.
123456789 | Alt CloseAllWorkbooks()Çalışma Kitabı Olarak Dim wbÇalışma Kitaplarında Her wb içinwb.Close SaveChanges:=DoğruSonraki wbAlt Bitiş |
Tüm Sayfaları Gizle
Bu prosedür tüm çalışma sayfalarını gizleyecektir.
12345678 | Alt HideAllSheets()Dim ws As Çalışma SayfasıSayfalardaki Her ws içinws.Visible = xlSheetHiddenSonraki wsAlt Bitiş |
Tüm Sayfaları Göster
Bu prosedür tüm çalışma sayfalarını gösterecektir.
12345678 | Alt UnhideAllSheets()Dim ws As Çalışma SayfasıSayfalardaki Her ws içinws.Visible = xlSheetVisibleSonraki wsAlt Bitiş |
Tüm Sayfaları Koru
Bu prosedür tüm çalışma sayfalarını koruyacaktır.
12345678 | Alt ProtectAllSheets()Dim ws As Çalışma SayfasıSayfalardaki Her ws içinws.Protect Parola:="… "Sonraki wsAlt Bitiş |
Tüm Sayfaların Korumasını Kaldır
Bu prosedür tüm çalışma sayfalarının korumasını kaldıracaktır.
12345678 | Alt UnprotectAllSheets()Dim ws As Çalışma SayfasıSayfalardaki Her ws içinws.Unprotect Parola:="… "Sonraki wsAlt Bitiş |
Tüm Çalışma Sayfalarındaki Tüm Şekilleri Sil
Bu yordam, bir çalışma kitabındaki tüm şekilleri siler.
123456789101112 | Alt DeleteAllShapesOnAllWorksheets()Çalışma Sayfası Olarak Karartma SayfasıDim Shp Şekil OlarakSayfalardaki Her ws içinws.Shapes'teki Her Shp İçinShp.SilSonrakiSonrakiAlt Bitiş |
Tüm PivotTable'ları Yenile
Bu yordam, bir sayfadaki tüm PivotTable'ları yenileyecektir.
12345678 | Alt RefreshAllPivotTables()PivotTable olarak karartma pvtSayfalarda("Sayfa1").PivotTable'larda Her pvt içinpvt.RefreshTableSonraki özellikAlt Bitiş |
Access VBA'da Her Biri İçin Kullanma
For Every döngüsü, Access VBA'da Excel VBA'da olduğu gibi çalışır. Aşağıdaki örnek, geçerli veritabanındaki tüm tabloları kaldıracaktır.
123456789 | Alt RemoveAllTables()Dim tdf As TableDefVeritabanı Olarak Dim dbsdbs'yi ayarla = CurrentDbdbs.TableDefs'deki Her tdf İçinDoCmd.DeleteObject tdf.NameDöngüdbs'yi ayarla = Hiçbir şeyAlt Bitiş |