Cara loop melalui daftar data pada lembar kerja dengan menggunakan makro dalam Excel

Ringkasan

Ketika Anda menulis Microsoft Visual Basic untuk aplikasi (VBA) makro, Anda mungkin harus mengulang melalui daftar data pada lembar kerja. Ada beberapa metode untuk melakukan tugas ini. Bagian "Informasi selengkapnya" dari artikel ini berisi informasi tentang metode yang dapat Anda gunakan untuk mencari daftar jenis berikut ini:
  • Daftar yang berisi diketahui, terus-menerus jumlah baris.
  • Daftar dinamis, atau daftar dengan jumlah baris yang tidak diketahui.
  • Daftar yang berisi data tertentu.

Informasi lebih lanjut

Microsoft menyediakan pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, garansi yang tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan terbiasa dengan alat-alat yang digunakan untuk membuat dan prosedur debug. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, namun mereka tidak akan mengubah contoh tersebut untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda. Sampel kode berikut ini menganggap bahwa daftar memiliki baris awal yang berjalan di sel A1 dan data yang berjalan di sel A2.

Untuk mencari daftar dengan terus-menerus, diketahui jumlah baris

Kode ini bergerak ke bawah kolom A akhir dari daftar:
   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

Untuk mencari daftar dinamis atau daftar dengan jumlah baris yang tidak diketahui

Kode ini bergerak ke bawah kolom A akhir dari daftar. (Kode ini mengasumsikan bahwa tiap sel dalam kolom A berisi entri hingga akhir.)
   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

Catatan Jika ada sel kosong di kolom A seluruh data, memodifikasi kode ini menjelaskan kondisi ini. Pastikan bahwa sel kosong jarak konsisten terpisah. Sebagai contoh, jika setiap sel dalam kolom A kosong (misalnya, situasi ini mungkin terjadi jika setiap catatan menggunakan dua baris, dengan kedua baris indentasi satu sel), loop ini dapat diubah sebagai berikut:
      ' 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

Untuk Mencari Daftar Catatan Khusus

Kode ini bergerak ke bawah kolom A akhir dari daftar:
   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

Properti

ID Artikel: 299036 - Tinjauan Terakhir: 28 Jan 2017 - Revisi: 1

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Excel 97 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2010

Tanggapan