Menggunakan VBA untuk mengakses lembar pertama dalam lembar kerja adalah Lembar Kerja (1). Item pertama dalam ListBox adalah myListBox.List (0). Saya mendengar bahwa Koleksi berbasis 1 tetapi saya tidak tahu apa itu. Array VBA berbasiskan 0. Fungsi string Excel seperti MID berbasis 1. Apakah ada prinsip umum tentang apa yang didasarkan pada 0 atau 1, atau bisakah Anda memberikan daftar masing-masing?
microsoft-excel-2007
vba
Noumenon
sumber
sumber
Jawaban:
Ada 3 jenis utama konstruksi pengelompokan yang tersedia di VBA, dengan perbedaan antara indeks
Koleksi - indeks berbasis 1
Koleksi Excel:
Keuntungan utama dari koleksi adalah kemudahan mengakses elemen dengan nama
Array - berbasis 0 secara default, tetapi indeks pertama dapat diubah ke nomor apa saja (diilustrasikan di bawah)
Setelah ditentukan, ia hanya akan menyimpan satu jenis item:
Dim x() As Long
Dim x() As Variant
Varian dapat berupa semua jenis Objek, termasuk Buku Kerja, Lembar, Rentang, Array
Dim x As Variant: x = Array(1) '1 Variant variable containing 1 array
Dim y(2) As Variant '1 Variant array containing 3 arrays
y(0) = Array(1): y(1) = Array(2): y(2) = Array(3)
Keuntungan utama dari array adalah kinerja ketika mengakses item berdasarkan indeks
For index=0 To 10
loop lebih cepat dariFor-Each
loopKamus - tidak diindeks, tetapi indeks dapat disimulasikan dengan Kunci
ListBox adalah objek yang kompleks dan dapat diakses melalui koleksi Kontrol berbasis 0
Properti .List () dari ListBox adalah array berbasis 0
Catatan lain
Indeks berbasis 0 adalah standar untuk bahasa lain
VBA memperkenalkan konsep berbasis 1 untuk membuatnya lebih intuitif bagi pengguna baru:
Beberapa contoh praktis perbedaan antara indeks mereka:
Bacaan lebih lanjut:
sumber