Vba tablosu: temelden i̇leri düzey kılavuza

Anahtar noktaları

  • VBA tablosu içindeki bir tabloyu, verileri (örneğin: öğrenci adı, konu ve puanlar) depolamak ve düzenlemek için kullanılan mini bir veritabanı olarak düşünün.
  • Kullanmadan önce bir dizi bildirmeniz gerekir; veri türü ve içinde saklamak istediğiniz değer sayısıyla birlikte.

VBA kullanarak büyük verilerle çalışmak istiyorsanız tabloları ve bunların VBA kodlarında nasıl kullanılacağını anlamanız gerekir. Bu kılavuzda tabloyu tüm yönleriyle inceleyecek ve ayrıca kullanılacak bazı örnekleri de göreceğiz. onlara.

VBA’da tablo nedir?

VBA’da dizi, birden fazla değeri saklayabilen bir değişkendir. Bu dizideki tüm değerlere tek seferde ulaşabileceğiniz gibi tek bir değere o değerin dizideki konumu olan indeks numarasını da belirterek erişebilirsiniz. Öğrencinin adı, konusu ve notlarıyla randevunuz olduğunu düşünün.

Tüm bu bilgileri tek bir öğrenci için değil yüzlerce öğrenci için bir tabloda saklayabilirsiniz. İşte bir tabloyu açıklamak için basit bir örnek.

bir tabloyu açıklamak için örnek

Yukarıdaki örnekte, on öğeden oluşan bir diziniz (dizi boyutu) var ve her öğenin belirli bir konumu (Dizin) var.

Bu nedenle, sekizinci konumdaki bir öğeyi kullanmak istiyorsanız, o öğeye indeks numarasını kullanarak başvurmalısınız.

Yukarıdaki örnekte kullandığımız dizi tek boyutlu bir dizidir. Ancak bu kılavuzun ilerleyen kısımlarında çok boyutlu dizileri de öğreneceğiz.

VBA’da bir dizi nasıl bildirilir

Yukarıda da belirttiğim gibi dizi değişken türüdür, dolayısıyla onu (Dim, Private, Public ve Static) anahtar kelimelerini kullanarak bildirmeniz gerekir. Normal bir değişkenden farklı olarak, bir dizi bildirirken dizi adından sonra bir çift parantez kullanmanız gerekir.

Yukarıdaki örnekte kullandığımız bir diziyi bildirmek istediğinizi varsayalım.

Bir dizi bildirme adımları.

  • Öncelikle “Dim” anahtar kelimesini kullanın, tablo adını girin ve parantez yazın.
    use-the-keyword-dim
  • Daha sonra dizinin veri türünü belirtmeniz gerekir. Belirtilmiş bir veri türünüz yoksa VBA uygun veri türünü atayacaktır.
    specify-data-type-of-an-array
  • Bundan sonra dizide saklamak istediğiniz öğe sayısını tanımlamanız gerekir.
    define-the-number-of-items
  • Sonuçta, bir dizideki bir öğeye değer atamak için, öğeyi tanımlamak amacıyla öğenin dizin numarasını kullanmanız ve ardından ona bir değer atamanız gerekir.
    assign-a-vale-to-an-item

Tam kod

 Sub vba_array_example() Dim StudentsNames(10) As String StudentsNames(0) = "Waylon" StudentsNames(1) = "Morton" StudentsNames(2) = "Rudolph" StudentsNames(3) = "Georgene" StudentsNames(4) = "Billi" StudentsNames(5) = "Enid" StudentsNames(6) = "Genevieve" StudentsNames(7) = "Judi" StudentsNames(8) = "Madaline" StudentsNames(9) = "Elton" End Sub

Hızlı Notlar

  • Yukarıdaki kodda ilk olarak 10’a kadar öğe depolayabilen ve string veri tipine sahip tek boyutlu diziyi tanımlayan Dim deyimine sahipsiniz.
  • Bundan sonra, bir dizinin elemanlarını 0’dan 9’a kadar tanımlayan 10 satırlık kodunuz var.

Değişken veri türüne sahip tablo

Bir dizi bildirirken veri türünü belirtmezseniz VBA otomatik olarak değişen veri türünü kullanır, bu da bellek kullanımında hafif bir artışa neden olur ve bellek kullanımındaki bu artış kod performansını yavaşlatabilir.

Bu nedenle, değişken veri türünü kullanmak gerekmediği sürece, bir dizi bildirirken belirli bir veri türünü tanımlamak en iyisidir.

Bir diziden bilgi döndürme

Daha önce de belirttiğim gibi bir diziden bilgi almak için elemanın indeks numarasını kullanarak konumunu belirtebilirsiniz. Örneğin bir önceki örnekte oluşturduğumuz alanın 8. elemanını döndürmek isteseydik kod şu şekilde olurdu:

bir tablodan-geri bildirim

Yukarıdaki kodda, A1 hücresine değeri 8 numaralı dizi öğesini kullanarak girdiniz.

Seçenek tabanı 1’i kullanın

Eminim şu anda aklınızda bu soru var, neden madde listemize bir yerine sıfırdan başladık?

Bu bir hata değil.

Programlama dilleri ilk kez oluşturulduğunda , bazı dikkatsizlikler bu yapıyı bir dizideki öğelerin listesi haline getirdi . Çoğu programlama dilinde liste öğelerinin aynı yapısını bulabilirsiniz.

Bununla birlikte, diğer birçok bilgisayar dilinin aksine, VBA’da indeksin çalışma şeklini normalleştirebilirsiniz, yani 1 ile başlamasını sağlayabilirsiniz. Yapmanız gereken tek şey, modülün başına bir ifade bildirmeden önce seçeneklere dayalı bir ifade eklemektir. dizi.dizi.

Şimdi bu tablo aşağıdaki gibi görünecek:

kullanım seçeneği-taban-1

Tabloda ara

Değerleri bir dizide sakladığınızda, dizi araması yapmanız gereken zamanlar olabilir.

Bu durumda kullanabileceğiniz yöntemleri bilmeniz gerekir. Şimdi bir dizide bir değeri nasıl arayacağınızı anlamanıza yardımcı olabilecek aşağıdaki koda bakın.

 Sub vba_array_search() 'this section declares an array and variables _ that you need to search within the array. Dim myArray(10) As Integer Dim i As Integer Dim varUserNumber As Variant Dim strMsg As String 'This part of the code adds 10 random numbers to _ the array and shows the result in the _ immediate window as well. For i = 1 To 10 myArray(i) = Int(Rnd * 10) Debug.Print myArray(i) Next i 'it is an input box that asks you the number that you want to find. Loopback: varUserNumber = InputBox _ ("Enter a number between 1 and 10 to search for:", _ "Linear Search Demonstrator") 'it's an IF statement that checks for the value that you _ have entered in the input box. If varUserNumber = "" Then End If Not IsNumeric(varUserNumber) Then GoTo Loopback If varUserNumber < 1 Or varUserNumber > 10 Then GoTo Loopback 'message to show if the value doesn't found. strMsg = "Your value, " & varUserNumber & _ ", was not found in the array." 'loop through the array and match each value with the _ the value you have entered in the input box. For i = 1 To UBound(myArray) If myArray(i) = varUserNumber Then strMsg = "Your value, " & varUserNumber & _ ", was found at position " & i & " in the array." Exit For End If Next i 'message box in the end MsgBox strMsg, vbOKOnly + vbInformation, "Linear Search Result" End Sub 
bir tabloda arama
  1. Kodun ilk bölümünde, daha sonra kodda kullanmanız gereken değişkenler bulunur.
  2. Bundan sonraki kısım, dizi için 10 değer elde etmek için RND kullanarak rastgele sayılar üretmektir.
  3. Daha sonra, tabloda aramak istediğiniz değeri girebileceğiniz bir giriş kutusu.
  4. Bu bölümde, girdiğiniz değerin bulunamaması durumunda mesaj kutusunda kullanılacak dizeye yönelik bir kodunuz vardır.
  5. Kodun bu kısmı, dizinin her bir öğesi arasında döngü yapmak ve girdiğiniz değerin dizide olup olmadığını kontrol etmek için bir döngü kullanır.
  6. Kodun son kısmında bir değerin bulunup bulunmadığını belirten bir mesaj görüntülenir.

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir