İçindekiler
Excel çalışma kitabımızda büyük bir veri kümesi olduğunda, bazen almak istediğimiz belirli sonuçları çıkarmak için satırlar arasında döngü yapabilmemiz uygun olur. VBA Excel'de herhangi bir işlemi çalıştırmak için en etkili, en hızlı ve en güvenli yöntemdir. Bu makalede, size 11 farklı yöntem göstereceğiz bir tablonun satırları arasında döngü ile Excel'de VBA makrosu .
Çalışma Kitabını İndirin
Ücretsiz alıştırma Excel çalışma kitabını buradan indirebilirsiniz.
VBA.xlsm ile Tablo Satırları Arasında DöngüExcel'de Tablo Satırları Arasında Döngü Oluşturmak için VBA ile 11 Yöntem
Bu bölümün ardından, aşağıdakileri nasıl yapacağınızı öğreneceksiniz bir tablonun satırları arasında döngü 11 farklı yöntemle, örneğin boş bir hücreye kadar satırlar arasında döngü, belirli bir değer bulunana kadar satırlar arasında döngü, satırlar arasında döngü ve belirli bir hücreyi renklendirme vb. VBA Excel'de makro.
Yukarıda, bu makalenin yöntemleri açıklamak için izleyeceği örnek veri kümesi yer almaktadır.
1. Bir Tablonun Her Satırındaki Her Hücre Arasında Hücre Referans Numarasına Göre Döngü Oluşturmak için VBA'yı Yerleştirme
Eğer istiyorsan bir tablonun her satırındaki her hücre boyunca döngü Excel çalışma sayfanızda ve dönüş değeri olarak hücre referans numarası ardından aşağıda açıklanan adımları izleyin.
Adımlar:
- Başlangıçta, tuşuna basın Alt + F11 sekmesine gidin veya klavyenizde Geliştirici -> Visual Basic açmak için Visual Basic Düzenleyicisi .
- Ardından, açılır kod penceresinde, menü çubuğundan Insert -> Modül .
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsByRef() LastRow = Range("B" & Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> LastColumn MsgBox "Currently iterating cell " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop End Sub
Kodunuz artık çalışmaya hazır.
- Şimdi, basın F5 klavyenizde veya menü çubuğundan Run -> Run Sub/UserForm üzerine de tıklayabilirsiniz. küçük Oynat simgesi makroyu çalıştırmak için alt menü çubuğunda.
- Veya veri kümesini ve sonucu görsel olarak görmek ve karşılaştırmak için şunları yapabilirsiniz Kaydet kodu ve çalışma sayfasına geri dönün ilgi çekici.
- Oradan, tıklayabilirsiniz Makrolar bir şey yok. Geliştirici sekmesi, Makro adını seçin, ve ardından Koşmak .
Kod başarılı bir şekilde yürütüldükten sonra, sonucu görmek için yukarıdaki gif'e bakın. Bir açılır pencere olacaktır MsgBox size her satırdaki her hücrenin hücre referans numarası Excel sayfanızdaki tablodan.
VBA Kod Açıklaması
LastRow = Range("B" & Rows.Count).End(xlUp).Row
B sütununda arama yaparak tablodaki son satır numarasını almak için.
FirstRow = 4
Verilerimizin başladığı 4 numaralı satırı ayarlayın.
i = FirstRow
İlk satırdan itibaren döngü yapmak için.
FirstColumn = 2
Verilerimizin başladığı 2 numaralı sütunu ayarlayın.
Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column
Son satıra kadar geçerli satırı değerlendirerek son sütun numarasını almak için satırlar arasında döngü başlatın.
Count = FirstColumn Do Until Count> LastColumn
Sütunu ilk satırdan son satıra kadar artırma döngüsü.
MsgBox "Şu anda yinelenen hücre " & Chr(Count + 64) & i Count = Count + 1 Döngü i = i + 1 Döngü
Bu kod parçası işlemek, her yinelemeden sonra artırmak ve kodun sonucunu görüntülemek için çalışır.
Daha fazlasını okuyun: Excel Tablosuna Otomatik Olarak Yeni Satır Ekleme
2. Her Satırdaki Her Hücre Arasında Değere Göre Döngü Oluşturmak için VBA Uygulayın
Eğer istiyorsan bir tablonun her satırındaki her hücre boyunca döngü ve hücrelerde bulunan değeri dönüş değeri olarak atma ile nasıl yapacağınızı anlamanıza yardımcı olacaktır. VBA Excel.
Bunu şu şekilde yapabilirsiniz ListObject ve DataBodyRange özelliği VBA Size makro kodunu hem nesne hem de özellik ile göstereceğiz.
2.1. ListObject ile
Atılacak adımlar ListObject ile bir tablonun her satırındaki her hücreyi hücre değerine göre döngüye sokma içinde VBA Excel aşağıda verilmiştir.
Adımlar:
- Öncekiyle aynı şekilde, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kod penceresinde, kopya aşağıdaki kodu ve macun o.
Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub
Kodunuz artık çalışmaya hazır.
- Ondan sonra, Koşmak Yukarıdaki bölümde size gösterdiğimiz gibi makroyu çalıştırın. Sonuç aşağıdaki gif'te gösterilmektedir.
Bir pop-up olacak MsgBox size her satırdaki her hücre tarafından taşınan değer Excel sayfanızdaki tablodan.
VBA Kod Açıklaması
Dim iListRow As ListRow Dim iCol As Range
Değişkenleri tanımlayın.
For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow
Bu kod parçası ilk olarak tablodaki satırlar arasında döngü başlatır (" TblÖğrenciler " tablo adımızdır). Daha sonra her satır için sütunları girer. Bundan sonra, MsgBox'taki hücrenin değerini iletir. Sonra bir sonraki sütuna gider. Bir satırın tüm sütunlarını yinelemeyi bitirdikten sonra, bir sonraki satıra gider ve son satıra kadar yineleme işlemine devam eder.
2.2. DataBodyRange Özelliği ile
Tablodan çıkarılan verilerle daha spesifik olmak için DataBodyRange özelliği ListObject . DataBodyRange özelliği size listeden başlık satırı ile ekleme satırı arasındaki aralığı içeren sonucu atacaktır.
Nasıl yapabileceğinize dair adımlar DataBodyRange ile bir tablonun her satırındaki her hücreyi hücre değerine göre döngüye sokma içinde VBA Excel aşağıda verilmiştir.
Adımlar:
- Daha önce gösterildiği gibi, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub
Kodunuz artık çalışmaya hazır.
- Sonra görüşürüz, Koşmak makrosunu çalıştırın ve çıktıyı görmek için aşağıdaki gif'e bakın.
Bir pop-up olacak MsgBox size her satırdaki her hücre tarafından taşınan değer Excel sayfanızdaki tablodan.
VBA Kod Açıklaması
Dim iRange As Aralık
Değişkeni tanımlayın.
For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange
Bu kod parçası ilk olarak tablodaki satırlar arasında döngü başlatır (" TblStdnt " tablo adımızdır) ve tablonun başlık satırı hariç bir değer aralığı döndürür. Ardından MsgBox'ta aralığın değerini iletir. Ardından aralığı çıkarmak için bir sonraki satıra gider ve son satıra kadar yineleme işlemine devam eder.
3. Excel'de Sütunları Birleştirerek Satırlar Arasında Yineleme Yapmak için VBA Makrosu Uygulayın
Bu bölümde aşağıdakilerin nasıl yapılacağı gösterilecektir sütunları ilk sütunla birleştirerek bir tablodaki satırlar arasında döngü Excel'deki veri kümenizden.
Örneğin, veri kümemiz için, ilk olarak B5 Hücresindeki John ve 101 C5 hücresinde bunları birleştirerek ve ardından B5 Hücresindeki John ve 89 in Hücre D5 'den birleştirerek 5. sıra .
Bunu nasıl yapabileceğinizi size gösterelim VBA Excel'de makro.
Adımlar:
- İlk başta, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- İkinci olarak, kod penceresinde, kopya aşağıdaki kodu ve macun o.
Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub
Kodunuz artık çalışmaya hazır.
- Üçüncüsü, Koşmak Sonucu görmek için aşağıdaki gif'e bakın.
Bir pop-up olacak MsgBox size birinci ve ikinci sütundaki hücrelerin birleştirilmiş değeri ( Colum B'den B5 hücresindeki John ve 101 Sütun C'den Hücre C5'e ) ve ardından birinci ve üçüncü sütundaki hücrelerin birleştirilmiş değeri ( Colum B'den B5 hücresindeki John ve 89 Sütun D'den Hücre D5'e ) sıra numarası 5 Ve bu birleştirme işlemi tablonun son satırına ulaşana kadar devam edecektir.
VBA Kod Açıklaması
Dim iRange As Range Dim iValue As String
Değişkeni tanımlayın.
ActiveSheet.ListObjects("TblConcatenate") ile
Ardından kod, tabloyu etkin sayfadan seçer (" TblConcatenate " ifadesini tablo adımıza ekleyelim).
For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value
Bundan sonra, sütun başlığı hariç her satırı yinelemeye başlar. Yineleme, sütun başlığı ile satırlar arasındaki aralıkta bir eşleşme bulursa, değeri iDeğer değişken.
Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With
Yukarıdaki koşul yerine getirilmezse, kod değeri MsgBox'a atar ve koşulu sonlandırır. Bundan sonra, başka bir aralıkta döngüye geçer ve son satıra kadar yinelemeye devam eder. Son satıra ulaştığında, makro kod yürütmesini sonlandırır.
4. Excel'de Bir Tablodaki Tüm Sütunları Birleştirerek Satırlar Arasında Yineleme Yapmak için Makro Gömme
Bu bölümde, aşağıdakileri nasıl yapacağımızı öğreneceğiz her satırın içerdiği tüm sütunları birleştirin ile veri kümesinde VBA Excel'de makro.
Bunu yürütmek için gereken adımlar aşağıda gösterilmiştir.
Adımlar:
- İlk olarak, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumns iResult = iResult & " " &Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Sonraki iCol MsgBox iResult iResult = "" Sonraki iRow End Sub
Kodunuz artık çalışmaya hazır.
- Sıradaki, Koşmak makro kodu.
Yukarıdaki gif'ten de görebileceğiniz gibi bir açılır pencere var MsgBox size her satırda bulunan tüm sütunların birleştirilmiş değeri Excel çalışma sayfanızın tablosundan.
VBA Kod Açıklaması
Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String
Değişkenleri tanımlayın.
Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol")
Birlikte çalışacağımız sayfa adını ayarlayın (" ConcatenatingAllCol " çalışma kitabındaki sayfa adıdır).
Set iObj = iSheet.ListObjects("TblConcatenateAll")
Birlikte çalışacağımız tablo adını tanımlayın (" TblConcatenateAll " veri kümemizdeki tablo adıdır).
For Each iRow In iObj.ListRows
Tablonun her satırı boyunca yinelemeyi başlatır.
For Each iCol In iObj.ListColumns
Tablonun her satırının her sütunu boyunca yinelemeyi başlatır.
iResult = iResult & " " & Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Sonraki iCol MsgBox iResult iResult = "" Sonraki iRow
Her satırın her sütununun taşıdığı değerleri kesiştirerek sonucu depolar. Her satırda bulunan tüm sütunları taradıktan sonra sonucu MsgBox'a geçirir. Ardından bir sonraki satırda tekrar döngüye başlar ve tablonun son satırına ulaşana kadar döngüye devam eder.
Daha fazlasını okuyun: Excel VBA ile Bir Tablonun Birden Çok Sütunu Nasıl Sıralanır (2 Yöntem)
5. VBA Makrosu ile Bir Tablonun Satırları Arasında Döngü Yaparak Değer Bulunursa Yinelemeyi Durdurun
Şunları yapmak istediğinizi varsayalım tablonuzun satırları arasında döngü yapar ve belirli bir değer bulduğunda döngüyü durdurur Bunu sadece basit bir makro kodu ile yapabilirsiniz.
Bunu nasıl yapacağımızı öğrenelim VBA Excel'de.
Adımlar:
- İlk başta, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kod penceresinde, kopya aşağıdaki kodu ve macun o.
Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData End Sub
Kodunuz artık çalışmaya hazır.
- Sonra görüşürüz, Koşmak makro.
- Bu olacak döngüyü başlatır ve belirli bir değeri bulduğunda durdurur (" Kenar ") aralığına yerleştirir ve sonuç olarak MsgBox .
Yukarıdaki görüntüden de görebileceğiniz gibi, bir MsgBox açılır ve size hücre adresi, $B$10 belirtilen değeri bulduğumuz yer, " Kenar " .
VBA Kod Açıklaması
Dim iData As Aralık
Değişkeni tanımlayın.
For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData
Bu kod parçası, 1'den 15'e kadar olan satırlar arasında döngü yapmak için burada. Belirli bir kelimeyi bulursa " Kenar " sonra sonucu kelimeyi tutan hücre adresiyle birlikte geçirir. 1'den 15'e kadar olan satırlardaki tüm verileri tarayarak kelimeyi aramayı bitirene kadar bunu yapmaya devam eder.
Daha Fazla Oku: Excel Tablosundan Satır ve Sütun Ekleme veya Silme
6. Excel'de Her Satırda Döngü Oluşturmak ve Belirli Bir Değeri Renklendirmek için VBA
MsgBox'ta belirtilen değerin hücre adresini atmak istemiyorsanız ne yapmalısınız? değeri taşıyan hücreyi renklendirir Aradığınız.
Bunu nasıl yapacağımızı öğrenelim VBA makro.
Adımlar:
- Öncekiyle aynı şekilde, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub
Kodunuz artık çalışmaya hazır.
- Ondan sonra, Koşmak makro.
- Bu olacak döngüyü başlatır ve belirli bir değeri bulduğunda durdurur (" Kenar ") aralığında ve hücreyi renklendirin ile ColourIndex kodda sağladığınız.
Yukarıdaki resimden de görebileceğiniz gibi, C ell B10 belirtilen değeri bulduğumuz yer, " Kenar " renklidir kod yürütüldükten sonra.
VBA Kod Açıklaması
Dim iData As Aralık
Değişkeni tanımlayın.
For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData
Bu kod parçası, 1'den 15'e kadar olan satırlar arasında döngü yapmak için burada. Belirli bir kelimeyi bulursa " Kenar " sonra kelimenin bulunduğu hücreyi renklendirir. 1'den 15'e kadar olan satırlardaki tüm verileri tarayarak kelimeyi aramayı bitirene kadar bunu yapmaya devam eder.
Daha fazlasını okuyun: Excel'de Hücre Değerine Dayalı DÜŞEYARA Tablo Dizisi Nasıl Kullanılır
Benzer Okumalar
- Excel'de TABLE Fonksiyonu Var mı?
- Excel'de Tablo Listeye Nasıl Dönüştürülür (3 Hızlı Yol)
- Excel'de Aralığı Tabloya Dönüştürme (5 Kolay Yöntem)
- Excel Tablosunda Formülü Etkili Bir Şekilde Kullanın (4 Örnekle)
- Excel Tablo Adı: Bilmeniz Gereken Her Şey
7. Excel'de Her Satırda Döngü Oluşturmak ve Her Tek Satırı Renklendirmek için VBA Uygulayın
Önceki bölümde, belirli bir değer taşıyan bir hücreyi nasıl renklendireceğimizi öğrendik. Bu bölümde, aşağıdakileri nasıl yapacağımızı öğreneceğiz bir tablonun her satırı boyunca döngü ve her tek satırı renklendirme ile VBA Excel'de makro.
Süreci yürütmek için gerekli adımlar aşağıda açıklanmıştır.
Adımlar:
- Daha önce gösterildiği gibi, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub
Kodunuz artık çalışmaya hazır.
- Şimdi, Koşmak makrosunu çalıştırın ve çıktıyı görmek için aşağıdaki resme bakın.
Bütün tek sayılı satırlar renklendirilmiştir Çalışma sayfasının tablosunda bulunan tüm satırlar arasında döngü oluşturduktan sonra.
VBA Kod Açıklaması
Dim iRow As Long
Değişkeni tanımlayın.
Range("B4").CurrentRegion ile
Birlikte çalışacağımız aralığı tanımlayın.
For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With
Kodun bu kısmı, geçerli satırın bir sonraki satırından başlayarak tüm satırlar boyunca yinelemeyi ifade eder, B4 Satır numaralarının 2'ye bölünmesinin modu, bir tamsayı türünde saklanan döndürülen satır numarasına eşitse, bu kod, hesaplama tarafından çıkarılan tüm satırları kodda sağlanan Renk İndeksi ile renklendirir. Aralığın sonuna ulaşana kadar tüm satırlarda ilerlemeye devam eder.
8. Excel'de Satırlar Arasında Döngü Oluşturmak ve Her Çift Satırı Renklendirmek için VBA Uygulayın
Önceki bölümde, bir tablonun her tek satırını nasıl renklendireceğimizi öğrendik. Bu bölümde, aşağıdakileri nasıl yapacağımızı öğreneceğiz bir tablonun her satırı boyunca döngü ve her çift satırı renklendirme Excel'de VBA makrosu ile.
Sürecin yürütülmesine ilişkin adımlar aşağıda ele alınmıştır.
Adımlar:
- İlk olarak, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub
Kodunuz artık çalışmaya hazır.
- Sıradaki, Koşmak makrosunu çalıştırın ve sonucu görmek için aşağıdaki görüntüye bakın.
Bütün çift sayılı satırlar renklendirilir Çalışma sayfasının tablosunda bulunan tüm satırlar arasında döngü oluşturduktan sonra.
VBA Kod Açıklaması
Dim iRow As Long
Değişkeni tanımlayın.
Range("B4").CurrentRegion ile
Birlikte çalışacağımız aralığı tanımlayın.
For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With
Bu kod parçası, geçerli satırdan itibaren üç satırdan sonra yinelemeye başlar, B4 Önce renklendirir, ardından satır sayısını 2 artırır ve veri kümesinin son satırına ulaşana kadar renklendirmeye devam eder.
9. Excel'de Boş Hücreye Kadar Satırlar Arasında Yineleme Yapmak için Makro Uygulayın
Kodunuzun aşağıdaki gibi çalışmasını istiyorsanız tablonun tüm satırları boyunca döngü oluşturun ve boş bir hücreye ulaştığında durun bu bölüm tam size göre. Bu görevi hem FOR Döngüsü ve Do-Until Döngüsü Excel'de VBA .
9.1. FOR Döngüsü ile
Adımlar FOR Döngüsü ile boş bir hücreye kadar tablodaki satırlar arasında döngü içinde VBA Excel aşağıda verilmiştir.
Adımlar:
- İlk başta, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Ondan sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub
Kodunuz artık çalışmaya hazır.
- Sonra, Koşmak makro ve sonuç aşağıdaki gif'te gösterilmektedir.
Makroyu çalıştırdıktan sonra tüm satırlar arasında döngü yapmaya başladı ve bir kez ulaştığında boş hücre, Hücre B8 , o yinelemeyi durdurdu .
VBA Kod Açıklaması
Dim x As Tamsayı
Değişkeni tanımlayın.
Application.ScreenUpdating = False
Ekran güncelleme olayını kapatın.
NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count
'den başlayan tüm satırları saklayın. Hücre B4 Sonuncusuna kadar.
Range("B4").Select
Seçiniz Hücre B4 .
For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next
Bu kod parçası tüm satırlar arasında döngü yapmaya başlar. Bir satırda boş bir hücre bulduğunda onu seçer ve sona ulaşana kadar satırları taramaya devam eder.
Application.ScreenUpdating = True
Ekran güncelleme olayını açın.
9.2. Do-Until Döngüsü ile
Adımlar Do-Until döngüsü ile boş bir hücreye kadar satırlar arasında döngü içinde VBA aşağıda verilmiştir.
Adımlar:
- İlk olarak, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub
Kodunuz artık çalışmaya hazır.
- Sonra görüşürüz, Koşmak makro. Sonuç aşağıdaki gif'te gösterilmektedir.
Makroyu çalıştırdıktan sonra başladı tüm satırlar arasında döngü ve bir kez ulaştığında boş hücre, Hücre B8 , o yinelemeyi durdurdu .
VBA Kod Açıklaması
Range("B4").Select
Çalışacağımız hücreyi seçin.
Do Until IsEmpty(ActiveCell)
Boş bir hücre bulunana kadar döngüyü başlatır ve devam ettirir.
ActiveCell.Offset(1, 0).Select Döngüsü
Bir satırda boş bir hücre bulunduğunda onu seçin ve yinelemeyi durdurun.
10. Excel'de Birden Çok Boş Hücreye Kadar Satırlar Arasında Yineleme Yapmak için VBA Makrosu
Önceki bölümde, boş bir hücre bulunduğunda döngüyü nasıl durduracağınızı öğrendiniz. Ancak ya bir yerine birden fazla boş hücre bulunana kadar yinelemeyi durdurmak istemezseniz?
Atılacak adımlar birden fazla boş hücre olana kadar satırlar arasında döngü ile bir tabloda bulunur. VBA Excel aşağıda gösterilmiştir.
Adımlar:
- İlk olarak, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub
Kodunuz artık çalışmaya hazır.
- Şimdi, Koşmak makrosunu çalıştırın ve çıktı için aşağıdaki gif'e bakın.
Makroyu çalıştırdıktan sonra ilk boş hücre olan Hücre B8'de durmadı . Bulduğunda durdu B16 hücresinde art arda iki boş hücre .
VBA Kod Açıklaması
Range("B4").Select
Çalışacağımız hücreyi seçin.
Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0))
Ardışık iki boş hücre bulunana kadar döngüyü başlatır ve devam ettirir.
ActiveCell.Offset(2, 0).Döngü Seç
Ardışık iki boş hücre bulunduğunda, hücreyi seçin ve yinelemeyi durdurun.
11. Excel'de Boş Olana Kadar Tüm Sütunları Birleştirerek Satırlar Arasında Döngü Oluşturmak için VBA'yı Yerleştirin
Bu bölüm size aşağıdakileri nasıl yapacağınızı gösterecektir bir tablodaki tüm satırlar boyunca döngü yapın ve boş bir hücreye kadar tüm sütunları birleştirin ile bulunur VBA Excel.
Bunu nasıl yapacağımızı öğrenelim VBA Excel'de makro.
Adımlar:
- İlk başta, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
- Sonra, kopya aşağıdaki kodu ve macun kod penceresine yerleştirin.
Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i End Sub
Kodunuz artık çalışmaya hazır.
- Sonra görüşürüz, Koşmak makrosunu çalıştırın ve sonuç için aşağıdaki gif'e bakın.
Yukarıdaki gif'ten de görebileceğiniz gibi bir açılır pencere var MsgBox size her satırda bulunan tüm sütunların birleştirilmiş değeri Excel çalışma sayfanızın tablosundan. boş hücreye ulaştığında durdu .
VBA Kod Açıklaması
Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String
Değişkenleri tanımlayın.
Set iSheet = Sheets("ConcatenatingAllColUntilBlank")
Birlikte çalışacağımız sayfa adını ayarlayın (" ConcatenatingAllColUntilBlank " çalışma kitabındaki sayfa adıdır).
iValue = Range("B4").CurrentRegion
Birlikte çalışacağımız aralığı tanımlayın.
For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i
Bu kod parçası döngüyü dizi ile başlatır. Dizinin en büyük alt simgesini ve ilk boyutun alt sınırını döndürene kadar döngüye devam eder. Ardından ikinci boyutun alt sınırını çıkarma yinelemesine girer. Bundan sonra, çıkarılan tüm değerleri iSonuç değişkenini birleştirerek ve sonucu MsgBox'a atarak boş bir hücre bulana kadar bunu yapmaya devam eder.
Sonuç
Sonuç olarak, bu makale size aşağıdakileri nasıl yapacağınıza dair 11 etkili yöntem gösterdi bir tablonun satırları arasında döngü ile Excel'de VBA makrosu Umarım bu makale sizin için çok faydalı olmuştur. Konuyla ilgili her türlü soruyu sormaktan çekinmeyin.