XL: Bagaimana menggunakan perulangan struktur dalam Visual Basic untuk aplikasi

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 141762 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Bila Anda membuat makro atau aplikasi di Microsoft Visual Basic untuk Aplikasi, hal ini sering diperlukan untuk menjalankan melalui bagian dari kode beberapa kali. Visual Basic for Applications menyediakan beberapa metode yang untuk mengulang, atau "loop" melalui, bagian dari kode.

Artikel ini menyediakan kode contoh yang menggambarkan penggunaan berbagai perulangan struktur dan algoritma yang Visual Basic untuk aplikasi menyediakan.

INFORMASI LEBIH LANJUT

Microsoft menyediakan contoh pemrograman hanya sebagai ilustrasi, tanpa jaminan apa pun baik tersurat maupun tersirat. Termasuk, namun tidak terbatas pada, jaminan tersirat mengenai kelayakan untuk diperdagangkan atau kesesuaian untuk keperluan tertentu. Artikel ini mengasumsikan bahwa Anda telah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan mendebug prosedur. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, namun mereka tidak akan memodifikasi contoh untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda. Ketika Anda menentukan struktur yang perulangan menggunakan, ada beberapa pertimbangan harus diperhatikan. Misalnya:
Saya tahu persis berapa banyak kali aku ingin loop melalui kode?

Jika demikian, berapa banyak?

Jika tidak, apakah ada syarat tertentu yang saya ingin makro untuk keluar dari loop? Jika loop bersyarat, saya ingin menguji kondisi sebelum atau setelah kode dijalankan?

Prosedur Visual Basic sampel

Contoh berikut menunjukkan berbagai struktur perulangan tersedia dalam Visual Basic for Applications. Kecuali jika dinyatakan lain, contoh menganggap sel atau kisaran sel yang dipilih. Beberapa lainnya hal yang perlu diperhatikan:
  • Dalam setiap contoh, pesan kotak () fungsiMsgBox) digunakan untuk menampilkan informasi. Dalam contoh ini, di mana pun MsgBox fungsi terjadi adalah di mana Anda harus memasukkan kode yang diulang melalui setiap iterasi dari loop.
  • Beberapa komentar dalam kode menggambarkan metode-metode alternatif untuk mencapai tugas tertentu atau untuk melakukan tugas-tugas yang berbeda dengan kode yang mirip.
  • Simbol tilde (~) yang digunakan dalam beberapa komentar harus diganti dengan nama objek ditunjukkan [objek yang tertutup dalam tanda kutip, misalnya worksheets("sheet1")], atau nomor indeks objek.

Untuk...Setiap...Berikutnya

Contoh ini menggunakan Untuk...Setiap...Berikutnya pernyataan untuk loop melalui semua sel dalam berbagai dipilih (komentar menunjukkan metode alternatif):
   ' To show the contents of each cell in a selection or specific range.
   Sub for_each_demo()

      ' Or, use "In Worksheet(~).Range(~)" to specify a specific range.
      For Each cell In Selection

         ' Displays cell contents in message box.
         MsgBox cell.Value

         ' Reset cell to next object.
      Next
   End Sub
				

For <variable> = <n1> to <n2></n2></n1></variable>

' This example loops through the code a specified number of times.
   Sub for_demo()

      ' Sets x to 1, adds 1 to x until x = 5, loops 5 times.
      For x = 1 To 5 Step 1

         ' Displays value of x in msgbox.
         MsgBox x

         ' Returns to top of loop 4 times.
      Next
   End Sub
				

Lakukan...Sampai dengan tes di awal Loop

Contoh ini menggunakan Melakukan...Sampai loop "berjalan" ke bawah kolom sel sampai sel kosong pertama tercapai. Karena makro melakukan tes pada awal loop, jika sel pertama kosong, kode di dalam loop akan tidak dijalankan.
   ' Performs Do loop, testing at top of loop.
   ' Loops until empty cell is reached.
   ' Note that you can also use a Do While Not IsEmpty(ActiveCell) loop.

   Sub test_before_do_loop()

      ' Test contents of active cell; if active cell is empty, exit loop.
      Do Until IsEmpty(ActiveCell)

         ' Displays cell contents in message box.
         MsgBox ActiveCell.Value

         ' Step down 1 row to the next cell.
         ActiveCell.Offset(1, 0).Select

        ' Return to top of loop.
      Loop
   End Sub
				

Lakukan...Sampai dengan tes di akhir Loop

Contoh ini juga menggunakan Melakukan loop, tapi itu tes di bagian bawah loop. Baris pertama makro tes sel pertama. Tanpa baris pertama kode untuk menguji sel awal, kode akan mengeksekusi pada setidaknya satu kali, karena loop tes di bagian bawah.
   ' Performs Do loop, testing at bottom of loop.

   Sub test_after_do_loop()

      ' Test to see if first cell is empty.
      If IsEmpty(ActiveCell) Then Exit Sub

         ' Begin loop.
         Do

            ' Displays cell contents in message box.
            MsgBox ActiveCell.Value

            ' Steps down one row to the next cell.
            ActiveCell.Offset(1, 0).Select

            ' Test contents of active cell; if empty, exit loop
            ' or Loop While Not IsEmpty(ActiveCell).

         Loop Until IsEmpty(ActiveCell)
      End Sub
				
HATI-HATI: Tidak cabang ke tubuh Sementara...Wend loop tanpa mengeksekusi Sementara pernyataan. Melakukannya dapat menyebabkan kesalahan pengoperasian atau masalah lain yang sulit untuk menemukan.

The Melakukan...Loop pernyataan menyediakan cara yang lebih terstruktur dan fleksibel untuk melakukan perulangan. The Sementara...Wend loop termasuk dalam Visual Basic untuk aplikasi untuk kompatibilitas.

Sementara...Wend Loop

CATATAN: Sementara...Wend loop termasuk dalam Visual Basic untuk aplikasi untuk kompatibilitas.

Contoh ini menggunakan Sementara...Wend loop. Loop ini tes di atas loop hanya.
    ' Performs While loop, testing at top of the loop.
   Sub While_loop_demo()

      ' Sets condition of loop, while active cell is not empty.
      While Not IsEmpty(ActiveCell)

         ' Displays cell contents in message box.
         MsgBox ActiveCell.Value

         ' Step down one row to the next cell.
         ActiveCell.Offset(1, 0).Select

      ' End While loop.
      Wend
   End Sub
				

Jika...Kemudian.GoTo Loop

Contoh ini membuat lingkaran dengan menggunakan"Jika <condition>kemudian GoTo <line label=""></line> </condition>"struktur. Struktur ini diuji di bawah loop.
     Sub loop_using_goto()

      ' Test to see if first cell is empty.
      If IsEmpty(ActiveCell) Then Exit Sub

      ' Line label indicating top of loop.
   top:

      ' Displays cell contents in message box.
      MsgBox ActiveCell.Value

      ' Step down one row to the next cell.
      ActiveCell.Offset(1, 0).Select

      ' Test to see if new cell is empty.
      If Not IsEmpty(ActiveCell) Then GoTo top

   End Sub
				

REFERENSI

Untuk informasi lebih lanjut tentang perulangan struktur, di Editor Visual Basic, klik asisten kantor, ketik loop, lalu klik Mencari untuk melihat topik kembali.

Untuk informasi tambahan tentang mendapatkan bantuan dengan Visual Basic forApplications, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
305326 OFFXP: Pemrograman sumber daya untuk Visual Basic untuk aplikasi
226118 OFF2000: Pemrograman sumber daya untuk Visual Basic untuk aplikasi
163435 VBA: Pemrograman sumber daya untuk Visual Basic untuk aplikasi
Microsoft Excel Visual Basic User's Guide, versi 5.0, halaman 143-151
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Properti

ID Artikel: 141762 - Kajian Terakhir: 15 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 98 for Macintosh
  • Microsoft Excel 5.0 for Macintosh
Kata kunci: 
kbcode kbhowto kbprogramming kbmt KB141762 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:141762

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com