4 Kesalahan yang Harus Dielakkan Semasa Memprogram Makro Excel Dengan VBA

4 Kesalahan yang Harus Dielakkan Semasa Memprogram Makro Excel Dengan VBA

Microsoft Excel sudah menjadi alat analisis data yang mampu, tetapi dengan kemampuan untuk mengotomatisasi tugas berulang dengan makro dengan menulis kod mudah dalam Visual Basic for Applications (VBA), ia jauh lebih hebat. Namun, jika tidak digunakan dengan betul, VBA boleh menyebabkan masalah.





Walaupun anda bukan pengaturcara, VBA menawarkan fungsi mudah yang membolehkan anda menambahkan fungsi yang mengagumkan pada hamparan anda.





Tidak kira sama ada anda seorang guru VBA yang membuat papan pemuka di Excel, atau pemula menulis skrip mudah yang melakukan pengiraan sel asas. Ikuti teknik pengaturcaraan mudah ini untuk belajar bagaimana menulis kod yang bersih dan bebas bug.





Bermula dengan VBA

VBA boleh melakukan semua perkara yang kemas untuk anda. Dari menulis makro yang mengubah lembaran menjadi menghantar e-mel dari spreadsheet Excel menggunakan skrip VBA terdapat sedikit had pada produktiviti anda.

Sekiranya anda belum diprogramkan dalam VBA di Excel sebelum anda perlu mengaktifkan alat Pembangun dalam program Excel anda. Berita baiknya, mengaktifkan alat Pembangun sebenarnya cukup mudah. Hanya pergi ke Fail > Pilihan dan kemudian Sesuaikan Pita . Hanya bergerak Pemaju tab dari panel kiri ke kanan.



Pastikan kotak centang mengaktifkan tab ini, dan sekarang tab Pembangun akan muncul di menu Excel anda.

Cara termudah untuk masuk ke tetingkap penyunting kod dari sini adalah dengan mengklik Lihat Kod butang di bawah Kawalan dalam menu Pembangun.





Anda kini sudah bersedia untuk menulis kod VBA! Tab ini adalah tempat anda akan mengakses VBA juga merakam makro dalam Excel . Sekarang Excel sudah siap berfungsi mari kita selesaikan beberapa kesalahan biasa yang harus dielakkan, dan cara untuk mencegahnya.

1. Nama Pembolehubah Mengerikan

Sekarang anda berada di tetingkap kod, sudah tiba masanya untuk mula menulis kod VBA. Langkah penting pertama dalam kebanyakan program, sama ada dalam VBA atau bahasa lain, adalah menentukan pemboleh ubah anda. Tidak menamakan pemboleh ubah dengan betul adalah salah satu kesalahan pengaturcaraan yang paling biasa dilakukan oleh pembangun baru.





bagaimana memulihkan iphone tanpa iTunes ke tetapan kilang

Sepanjang dekad penulisan kod saya, saya telah menemui banyak mazhab pemikiran mengenai konvensyen penamaan berubah-ubah dan mempelajari beberapa peraturan dengan cara yang sukar. Berikut adalah beberapa petua pantas untuk membuat nama berubah:

  • Buat mereka sesingkat mungkin.
  • Jadikan mereka sebagai deskriptif mungkin.
  • Kata pengantarnya dengan jenis pemboleh ubah (boolean, integer, dll ...).

Berikut adalah contoh tangkapan skrin dari program yang sering saya gunakan untuk membuat panggilan WMIC Windows dari Excel untuk mengumpulkan maklumat PC.

Apabila anda ingin menggunakan pemboleh ubah di dalam fungsi dalam modul atau objek (saya akan menerangkannya di bawah), maka anda perlu menyatakannya sebagai pemboleh ubah 'awam' dengan mengawali deklarasi dengan Awam . Jika tidak, pemboleh ubah dinyatakan dengan mendahului mereka dengan perkataan Tiada .

Seperti yang anda lihat, jika pemboleh ubah adalah bilangan bulat, ia diawali dengan int . Sekiranya ia tali, maka hlm . Ini adalah pilihan peribadi yang membantu di kemudian hari semasa anda membuat program kerana anda akan selalu mengetahui jenis data yang dimiliki oleh pemboleh ubah dengan melihat nama.

Juga, pastikan untuk menamakan helaian di buku kerja Excel anda.

Dengan cara ini, apabila anda merujuk pada nama helaian dalam kod Excel VBA anda, anda merujuk kepada nama yang masuk akal. Dalam contoh di atas, saya mempunyai helaian di mana saya menarik maklumat Rangkaian, jadi saya memanggil helaian itu 'Rangkaian'. Bila-bila masa saya mahu merujuk helaian Rangkaian, saya dapat melakukannya dengan cepat tanpa mencari nombor helaiannya.

2. Memecah Bukan Melambung

Salah satu masalah yang paling biasa dihadapi oleh pengaturcara VBA yang lebih baru ketika mereka mula menulis kod adalah menangani gelung dengan betul.

Looping sangat biasa di Excel kerana selalunya anda memproses nilai data ke seluruh baris atau lajur, jadi anda perlu melengkung untuk memproses semuanya.

Pengaturcara baru sering kali ingin keluar dari gelung (VBA For loop atau VBA Do While loop) serta-merta apabila keadaan tertentu benar.

Berikut adalah contoh kaedah ini digunakan untuk memecahkan gelung VBA.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Pengaturcara baru mengambil pendekatan ini kerana senang. Cuba dan elakkan putaran secara terang-terangan.

Lebih kerap daripada tidak, kod yang muncul selepas 'break' itu penting untuk diproses. Cara yang lebih bersih dan profesional untuk menangani keadaan di mana anda ingin meninggalkan gelung separuh jalan adalah dengan memasukkan keadaan keluar dalam sesuatu seperti pernyataan VBA While.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Ini memungkinkan aliran logik kod anda. Sekarang kod akan melintas dan berhenti setelah mencapai 6. Tidak perlu memasukkan perintah EXIT atau BREAK canggung pada pertengahan gelung.

3. Tidak Menggunakan Susunan

Kesalahan menarik lain yang dibuat oleh pengaturcara VBA baru ialah memproses semua yang terdapat di dalam banyak gelung bersarang yang menyaring melalui baris dan lajur semasa proses pengiraan.

Ini juga boleh menyebabkan masalah prestasi utama. Melambung melalui lajur dan mengekstrak nilai setiap masa adalah pembunuh pada pemproses anda. Cara yang lebih cekap untuk menangani senarai nombor yang panjang adalah dengan menggunakan array.

Sekiranya anda tidak pernah menggunakan array sebelum ini, jangan takut. Bayangkan susunan sebagai dulang ais batu dengan sebilangan 'kiub' tertentu yang boleh anda masukkan maklumat. Kiub bernombor 1 hingga 12, dan begitulah cara anda 'memasukkan' data ke dalamnya.

Anda boleh menentukan array dengan mudah hanya dengan menaip Dim arrMyArray (12) sebagai Integer .

cara mengimport kata laluan ke chrome

Ini membuat 'dulang' dengan 12 slot yang tersedia untuk anda isi.

Inilah kod baris perulangan tanpa array:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

Dalam contoh ini, kod tersebut diproses melalui setiap sel dalam julat dan melakukan pengiraan suhu.

Sekiranya anda ingin melakukan pengiraan lain pada nilai-nilai yang sama, prosesnya akan menjadi tidak stabil. Anda mesti menduplikasi kod ini, memproses semua sel ini, dan melakukan pengiraan baru anda. Semua untuk satu perubahan!

Inilah contoh yang lebih baik, menggunakan tatasusunan. Pertama, mari buat susunan.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

The x-1 untuk menunjukkan elemen array hanya perlu kerana gelung For bermula pada 1. Elemen array perlu bermula pada 0.

Sekarang anda mempunyai susunan, sangat mudah untuk memproses kandungannya.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Contoh ini melalui keseluruhan barisan baris ( Di Bawah memberi anda jumlah nilai data dalam array), melakukan pengiraan suhu, dan kemudian memasukkannya ke dalam array lain yang disebut arrMyTemps .

4. Menggunakan Terlalu Banyak Rujukan

Sama ada anda memprogram dalam Visual Basic atau VBA sepenuhnya, anda perlu memasukkan 'rujukan' untuk mengakses ciri tertentu.

Rujukan adalah seperti 'perpustakaan' yang dipenuhi dengan fungsi yang boleh anda gunakan sekiranya anda mengaktifkan fail tersebut. Anda boleh mendapatkan Rujukan dalam paparan Pembangun dengan mengklik Alat dalam menu dan kemudian klik pada Rujukan .

Apa yang anda dapati dalam tetingkap ini adalah semua rujukan yang dipilih untuk projek VBA semasa anda.

Anda harus menyemak senarai ini kerana rujukan yang tidak diperlukan dapat membazirkan sumber sistem. Sekiranya anda tidak menggunakan manipulasi fail XML, maka mengapa tetap memilih Microsoft XML? Sekiranya anda tidak berkomunikasi dengan pangkalan data, kemudian hapus Microsoft DAO, dll.

Sekiranya anda tidak pasti apa rujukan terpilih ini, tekan F2 dan anda akan melihat Object Explorer. Di bahagian atas tetingkap ini, anda boleh memilih pustaka rujukan untuk dilayari.

Setelah dipilih, anda akan melihat semua objek dan fungsi yang tersedia, yang boleh anda klik untuk mengetahui lebih lanjut.

Sebagai contoh, apabila saya mengklik perpustakaan DAO dengan cepat menjadi jelas bahawa ini semua berkaitan dengan menyambung dan berkomunikasi dengan pangkalan data.

Mengurangkan jumlah rujukan yang anda gunakan dalam projek pengaturcaraan anda adalah wajar, dan akan membantu menjadikan keseluruhan aplikasi anda berjalan dengan lebih berkesan.

cara menentukan windows motherboard 10

Pengaturcaraan dalam Excel VBA

Keseluruhan idea menulis kod dalam Excel menakutkan banyak orang, tetapi ketakutan ini sebenarnya tidak diperlukan. Visual Basic for Applications adalah bahasa yang sangat mudah dipelajari, dan jika anda mengikuti praktik umum yang disebutkan di atas, anda akan memastikan bahawa kod anda bersih, cekap, dan mudah difahami.

Jangan berhenti di situ sekalipun. Membina asas kemahiran Excel yang kuat dengan Tutorial VBA untuk pemula . Kemudian terus belajar mengenai VBA dan makro dengan sumber untuk membantu anda mengautomasikan hamparan anda.

Berkongsi Berkongsi Tweet E-mel Adakah Perlu Ditingkatkan ke Windows 11?

Windows telah direka bentuk semula. Tetapi apakah itu cukup untuk meyakinkan anda untuk beralih dari Windows 10 ke Windows 11?

Baca Seterusnya
Topik-topik yang berkaitan
  • Produktiviti
  • Pengaturcaraan
  • Pengaturcaraan
  • Pengaturcaraan Asas Visual
  • Microsoft Excel
Mengenai Pengarang Geran Anthony(40 Artikel Diterbitkan)

Anthony Grant adalah penulis bebas yang merangkumi Pengaturcaraan dan Perisian. Dia pakar Sains Komputer dalam bidang pengaturcaraan, Excel, perisian dan teknologi.

Lagi Dari Anthony Grant

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan