Excel'de makrolar kullanılarak çalışma sayfasındaki veri listesini döngüye sokma
Özet
Bir Microsoft Visual Basic for Applications (VBA) makrosu yazdığınızda, çalışma sayfasındaki veri listesini döngüye sokmanız gerekebilir. Bu görevi gerçekleştirmek için çeşitli yöntemler vardır. Bu makalenin "Daha Fazla Bilgi" bölümü, aşağıdaki liste türlerini aramak için kullanabileceğiniz yöntemler hakkında bilgi içerir:
- Bilinen, sabit satır sayısını içeren liste.
- Dinamik bir liste veya bilinmeyen sayıda satır içeren bir liste.
- Belirli bir kayıt içeren bir liste.
Daha Fazla Bilgi
Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Aşağıdaki kod örnekleri, listenin A1 hücresinde başlayan bir üstbilgi satırı ve A2 hücresinde başlayan veriler olduğunu varsayar.
Sabit, Bilinen Satır Sayısına Sahip Listeyi Aramak
Bu kod, A sütununu listenin sonuna taşır:
Sub Test1()
Dim x As Integer
' Set numrows = number of rows of data.
NumRows = Range("A2", Range("A2").End(xldown)).Rows.Count
' Select cell a1.
Range("A2").Select
' Establish "For" loop to loop "numrows" number of times.
For x = 1 To NumRows
' Insert your code here.
' Selects cell down 1 row from active cell.
ActiveCell.Offset(1, 0).Select
Next
End Sub
Dinamik Bir Liste'de veya Bilinmeyen Satır Sayısına Sahip Bir Liste'de Arama Yapmak
Bu kod A sütununu listenin sonuna taşır. (Bu kod, A sütunundaki her hücrenin sonuna kadar bir giriş içerdiğini varsayar.)
Sub Test2()
' Select cell A2, *first line of data*.
Range("A2").Select
' Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
' Insert your code here.
' Step down 1 row from present location.
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Not Verilerin tamamında A sütununda boş hücreler varsa, bu kodu bu koşulu hesaba eklemek için değiştirin. Boş hücrelerin birbirinden tutarlı bir mesafede olduğundan emin olun. Örneğin, A sütunundaki her iki hücreden biri boşsa (bu durum, örneğin her 'kayıt' iki satır kullandığında ve ikinci satır bir hücre girintiliyse ortaya çıkar), bu döngü aşağıdaki gibi değiştirilebilir:
' Set Do loop to stop when two consecutive empty cells are reached.
Do Until IsEmpty(ActiveCell) and IsEmpty(ActiveCell.Offset(1, 0))
' Insert your code here.
'
' Step down 2 rows from present location.
ActiveCell.Offset(2, 0).Select
Loop
Listede Belirli Bir Kaydı Aramak İçin
Bu kod, A sütununu listenin sonuna taşır:
Sub Test3()
Dim x As String
Dim found As Boolean
' Select first line of data.
Range("A2").Select
' Set search variable value.
x = "test"
' Set Boolean variable "found" to false.
found = False
' Set Do loop to stop at empty cell.
Do Until IsEmpty(ActiveCell)
' Check active cell for search value.
If ActiveCell.Value = x Then
found = TRUE
Exit Do
End If
' Step down 1 row from present location.
ActiveCell.Offset(1, 0).Select
Loop
' Check for found.
If found = True Then
Msgbox "Value found in cell " & ActiveCell.Address
Else
Msgbox "Value not found"
End If
End Sub
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin