VBA StatusBar

VBA StatusBar

Bilah Status VBA Excel

StatusBar adalah properti VBA yang dapat digunakan untuk menampilkan status kode yang sudah selesai pada saat eksekusi. Misalnya, ini ditampilkan di sudut kiri lembar kerja saat Makro dijalankan. Status ditampilkan dalam persentase kepada pengguna.

Ketika Makro berjalan di belakang, itu membuat frustrasi menunggu tanpa mengetahui berapa lama waktu yang dibutuhkan. Namun, jika Anda berada pada tahap di mana kode sedang berjalan, Anda setidaknya dapat menghitung waktu yang diperlukan. Jadi, idenya adalah memiliki status barStatus BarSeperti namanya, status bar menampilkan status saat ini di sudut kanan bawah Excel; itu adalah bilah yang dapat disesuaikan yang dapat disesuaikan untuk memenuhi kebutuhan pengguna.baca lebih lanjut menunjukkan persentase pekerjaan yang diselesaikan sejauh ini, seperti di bawah ini.

Apa itu Application.StatusBar?

Application.StatusBar adalah properti yang dapat kita gunakan dalam pengkodean makro untuk menunjukkan status saat Makro berjalan di belakang layar.

Ini tidak seindah “Bilah Kemajuan VBA” kami tetapi cukup baik untuk mengetahui status proyek Makro.

Anda bebas menggunakan gambar ini di situs web Anda, templat, dll., Harap berikan kami tautan atribusiBagaimana Memberikan Atribusi? Tautan Artikel menjadi Hyperlink
Misalnya: Sumber: VBA StatusBar (wallstreetmojo.com)

Contoh Membuat StatusBar menggunakan VBA

Ikuti langkah-langkah di bawah ini untuk membuat bilah status.

Langkah 1: Pertama, tentukan VBA variableDefine Deklarasi VBA VariableVariable diperlukan di VBA untuk mendefinisikan variabel untuk tipe data tertentu sehingga dapat menyimpan nilai; variabel apa pun yang tidak ditentukan dalam VBA tidak dapat menyimpan nilai. Baca lebih lanjut untuk menemukan baris yang terakhir digunakan di lembar kerja.

Kode:

Sub Status_Bar_Progress() Dim LR Sebagai Long End Sub

Langkah 2: Temukan baris yang terakhir digunakan menggunakan kode di bawah ini.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row End Sub

Langkah 3: Selanjutnya, kita perlu mendefinisikan variabel untuk menampung jumlah bar yang akan ditampilkan.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer End Sub

Ini akan menampung berapa banyak bilah yang diizinkan untuk ditampilkan di bilah status.

Langkah 4: Untuk variabel ini, simpan batas bilah sebagai 45.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 End Sub

Langkah 5: Tetapkan dua variabel lagi untuk menahan status dan persentase saat ini selesai saat Makro berjalan.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer End Sub

Langkah 6: Sekarang, gunakan kode di bawah ini untuk mengaktifkan bilah status.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” End Sub

Yang akan dilakukan adalah menambahkan tanda kurung siku ([) dan menambahkan 45 karakter spasi sebelum mengakhiri teks dengan tanda kurung tutup (]).

Jalankan kodenya. Lihat di bawah ini di bilah status Excel VBA.

Keluaran:

Langkah 7: Kita perlu menyertakan loop For Next di VBAFor Next Loop Dalam bahasa pemrograman VBAAll menggunakan loop VBA For Next. Setelah pernyataan FOR, ada kriteria dalam loop ini, dan kode akan diulang hingga kriteria tercapai. baca lebih lanjut untuk menghitung persentase Makro yang telah selesai. Kemudian, tentukan variabel untuk memulai Makro.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 To LR Next k End Sub

Langkah 8: Di dalam loop, kita perlu menghitung “Status Sekarang”. Jadi, untuk variabel “PresentStatus”, kita perlu menerapkan rumus di bawah ini.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 To LR PresentStatus = Int((k / LR) * NumOfBars) Next k End Sub

Kami telah menggunakan fungsi INT untuk mendapatkan nilai integer.

Langkah 9: Kita perlu menghitung “Persentase Penyelesaian” untuk menerapkan rumus di bawah ini.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 Ke LR PresentStatus = Int((k / LR) * NumOfBars) PercetageCompleted = Round(PresentStatus / NumOfBars * 100, 0) Next k End Sub

Dalam hal ini, kami telah menggunakan fungsi ROUND di Excel karena kami perlu membulatkan ke nilai nol terdekat, berapa pun desimalnya. Jadi, ROUND dengan nol sebagai argumen yang digunakan di sini.

Langkah 10: Kami telah memasukkan braket awal dan braket akhir ke bilah status, sekarang kami perlu memasukkan hasil yang diperbarui, dan itu dapat dilakukan dengan menggunakan kode di bawah ini.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 Ke LR PresentStatus = Int((k / LR) * NumOfBars) PercetageCompleted = Round(PresentStatus / NumOfBars * 100, 0) Application.StatusBar = “[” & String( PresentStatus, “|”) & Space(NumOfBars – PresentStatus) & _”] ” & PercetageCompleted & “% Complete” Next k End Sub

Pada kode di atas, kita telah menyisipkan tanda kurung buka “[“dan untuk menunjukkan progres Makro, kita telah menyisipkan garis lurus (|) dengan menggunakan fungsi STRING. Saat loop berjalan, itu akan mengambil ” PresentStatus .” Ini akan memasukkan banyak garis lurus di bilah status.

Kode:

Application.StatusBar = “[” & String(PresentStatus, “|”)

Selanjutnya, kita perlu menambahkan karakter spasi antara satu garis lurus dan garis lainnya, yang akan dihitung menggunakan “NumOfBars” dikurangi “PresentStatus”.

Kode:

Application.StatusBar = “[” & String(PresentStatus, “|”) & Spasi(NumOfBars – PresentStatus)

Kemudian, kami menutup braket “].” Selanjutnya, kami telah menggabungkan nilai variabel “PercentageCompleted” sementara loop berjalan dengan kata di depannya sebagai “% Selesai.”

Kode:

Application.StatusBar = “[” & String(PresentStatus, “|”) & Space(NumOfBars – PresentStatus)& _”] ” & PercetageCompleted & “% Complete”

Saat kode berjalan, kami mengizinkan pengguna untuk mengakses lembar kerja, jadi kami perlu menambahkan ” Do Events .”

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 Ke LR PresentStatus = Int((k / LR) * NumOfBars) PercetageCompleted = Round(PresentStatus / NumOfBars * 100, 0) Application.StatusBar = “[” & String( PresentStatus, “|”) & Space(NumOfBars – PresentStatus) & _ “] ” & PercetageCompleted & “% Complete” DoEvents Next k End Sub

Langkah 11: Setelah menambahkan “Lakukan Acara”, kita dapat menulis kode yang perlu dijalankan di sini.

Misalnya kita ingin memasukkan serial number ke dalam cell, maka kita akan menuliskan kodenya di bawah ini.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 Ke LR PresentStatus = Int((k / LR) * NumOfBars) PercetageCompleted = Round(PresentStatus / NumOfBars * 100, 0) Application.StatusBar = “[” & String( PresentStatus, “|”) & Space(NumOfBars – PresentStatus) & _”] ” & PercetageCompleted & “% Complete” DoEvents Cells(k, 1).Value = k ‘Anda dapat menambahkan kode Anda di sini Next k End Sub

Langkah 12: Sebelum kita keluar dari loop, kita perlu menambahkan satu hal lagi, yaitu, Jika loop berada di dekat baris yang terakhir digunakan di lembar kerja, maka kita perlu membuat bilah status menjadi normal.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 Ke LR PresentStatus = Int((k / LR) * NumOfBars) PercetageCompleted = Round(PresentStatus / NumOfBars * 100, 0) Application.StatusBar = “[” & String( PresentStatus, “|”) & Space(NumOfBars – PresentStatus) & _”] ” & PercetageCompleted & “% Complete” DoEvents Cells(k, 1).Value = k ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini Jika k = LR Maka Application.StatusBar = False Next k End Sub

Kami telah menyelesaikan pengkodean. Saat Anda menjalankan kode, Anda dapat melihat bilah status memperbarui status persentase penyelesaiannya.

Keluaran:

Di bawah ini adalah kode untuk Anda.

Kode:

Sub Status_Bar_Progress() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row Dim NumOfBars As Integer NumOfBars = 45 Dim PresentStatus As Integer Dim PercetageCompleted As Integer Application.StatusBar = “[” & Space( NumOfBars) & “]” Dim k Selama k = 1 Ke LR PresentStatus = Int((k / LR) * NumOfBars) PercetageCompleted = Round(PresentStatus / NumOfBars * 100, 0) Application.StatusBar = “[” & String( PresentStatus, “|”) & Space(NumOfBars – PresentStatus) & _”] ” & PercetageCompleted & “% Complete” DoEvents Cells(k, 1).Value = k ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini ‘Anda dapat menambahkan kode Anda di sini Jika k = LR Maka Application.StatusBar = False Next k End Sub

Hal-hal untuk diingat

  • Kami hanya dapat menambahkan tugas yang perlu kami lakukan di dalam loop.
  • Setelah menambahkan prosedur “Lakukan Acara”, kami dapat menambahkan tugas yang perlu Anda lakukan.

Artikel yang Direkomendasikan

Artikel ini telah menjadi panduan untuk VBA StatusBar. Di sini, kami membahas mengaktifkan bilah status untuk menampilkan kemajuan menggunakan kode VBA di Excel, contoh praktis, dan templat yang dapat diunduh. Di bawah ini Anda dapat menemukan beberapa artikel Excel VBA yang berguna: –

  • Kode batang di Excel
  • ListObjects di VBA
  • VBA Temukan Selanjutnya
  • CDEC di VBA

Related Posts

Tinggalkan Balasan