Özet
Bu makale, çeşitli dizi türleriyle çalışmak için kullanabileceğiniz örnek Microsoft Visual Basic for Applications yordamlarını içerir.
Ek Bilgi
Microsoft, açık veya zımni garanti olmadan yalnızca çizim için programlama örnekleri sağlar. Bu, satılabilirlik veya belirli bir amaca uygunlukla ilgili zımni garantileri içerir ancak bunlarla sınırlı değildir. Bu makalede, gösterilmekte olan programlama dilini ve yordamları oluşturmak ve hatalarını ayıklamak için kullanılan araçları bildiğiniz varsayılır. Microsoft destek mühendisleri belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir, ancak özel gereksinimlerinizi karşılamak için ek işlevler sağlamak veya yordamlar oluşturmak için bu örnekleri değiştirmezler. NOT: Visual Basic for Applications yordamlarda kesme işaretinden sonraki sözcükler açıklamalardır.
Bir Diziyi Doldurmak ve Sonra Çalışma Sayfasına Kopyalamak için
-
Yeni bir çalışma kitabı açın ve bir Visual Basic modül sayfası ekleyin.
-
Modül sayfasına aşağıdaki kodu yazın.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Sayfa1'i seçin.
-
Araçlar menüsünde Makro'ya gidin ve Makrolar'a tıklayın.
-
Makro iletişim kutusunda, Sheet_Fill_Array ve ardından Çalıştır'a tıklayın.
Çalışma Sayfasından Değer Almak ve Diziyi Doldurmak için
-
A1:A10 hücrelerinde Sayfa1'deki değerleri yazın.
-
Visual Basic modül sayfasında aşağıdaki kodu yazın:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Sayfa1'i seçin.
-
Araçlar menüsünde Makro'ya gidin ve Makrolar'a tıklayın.
-
Makro iletişim kutusunda from_sheet_make_array'e ve ardından Çalıştır'a tıklayın.
Dizi Geçirmek ve Almak için
-
Modül sayfasında aşağıdaki kodu yazın:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Sayfa1'i seçin ve A1:A10 aralığını vurgulayın.
-
Araçlar menüsünde Makro'ya gidin ve Makrolar'a tıklayın.
-
Makro iletişim kutusunda pass_array'e ve ardından Çalıştır'a tıklayın.
İki Diziyi Karşılaştırmak için
-
Sayfa1'de iki adlandırılmış aralık oluşturun. Bir aralığı1 ve diğer aralığı2 olarak adlandırın.
Örneğin, A1:A10 hücre aralığını vurgulayın ve aralığı1 olarak adlandırın; B1:B10 hücre aralığını vurgulayın ve range2 olarak adlandırın. -
Modül sayfasına aşağıdaki kodu yazın.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Sayfa2'yi seçin.
-
Araçlar menüsünde Makro'ya gidin ve Makro'ya tıklayın.
-
Makro iletişim kutusunda compare_two_array'e ve ardından Çalıştır'a tıklayın.
Her karşılaştırma için bir ileti kutusu görürsünüz.
Dinamik Diziyi Doldurmak için
-
Modül sayfasında aşağıdaki kodu yazın:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
Araçlar menüsünde Makro'ya gidin ve Makrolar'a tıklayın.
-
Makro iletişim kutusunda, fill_array ve ardından Çalıştır'a tıklayın.
NOT: "number_of_elements" değişkeninin değiştirilmesi, dizinin boyutunu belirler.