İçindekiler
Dizi, aynı tür verileri tutan bir değişkendir. Yalnızca bir satır veya bir sütun veri varsa, bu tek boyutlu bir dizi olarak bilinir. Ancak, birden fazla satır ve sütun olduğunda, buna 2D dizi denir. ReDim Ayrıca, VBA'da bir diziyi yeniden boyutlandırmak için Koruyun anahtar sözcüğü ile ReDim Bu makale size eski verileri sağlam tutmak için 2 hızlı yollar " ReDim Koruma Alanı " a 2D dizi içinde Excel VBA .
Alıştırma Çalışma Kitabını İndirin
ReDim için Makro 2D.xlsm'yi Koru
2 Excel VBA'da 2D Diziyi ReDim Korumaya Yönelik Kullanışlı Yaklaşımlar
Bu, bir veri kümesinden oluşturulan temel veri kümesidir. 2D dizi İlk olarak bu diziyi oluşturacağız. Daha sonra bu diziye bir sütun daha ekleyeceğiz. 3 satır ve 2 sütun ile " ReDim Koruma Alanı "Ayrıca, bunu kullanmazsak ne olacağını da göstereceğiz.
Varsayılan olarak, dizinin yalnızca son boyutunu yeniden boyutlandırabiliriz (yani sütunlar veya üst sınır). Diziyi transpoze edeceğiz, ardından son boyutu değiştireceğiz ve ardından dizinin her iki boyutunu da yeniden boyutlandırmak için tekrar transpoze edeceğiz. 2D dizi Excel VBA'da.
1. ReDim Son Boyutu Koru 2D Dizi
İlk olarak tanımlayacağız 2D dizi Sonra, dinamik olarak ReDim deyimini kullanarak üç satır ve iki sütundan oluşan bir dizi oluşturacağız. ReDim ifadesi ile tekrar Koruyun anahtar kelime iki boyutlu dizinin üst sınırını artırmak için.
Adımlar:
- Başlamak için, tuşuna basın ALT+F11 getirmek için VBA Modülü penceresinden yapabilirsiniz. Alternatif olarak, bunu Geliştirici sekme → seç Visual Basic .
- Sonra da Ekleme sekme → seç Modül VBA kodunu buraya yazacağız.
- Ardından, aşağıdaki kodu Modül Pencere.
Sub Redim_Preserve_2D_Array_Row() Dim Our_Array() As Variant ReDim Our_Array(1 To 3, 1 To 2) Our_Array(1, 1) = "Rachel" Our_Array(2, 1) = "Ross" Our_Array(3, 1) = "Joey" Our_Array(1, 2) = 25 Our_Array(2, 2) = 26 Our_Array(3, 2) = 25 Range("C6:D8").Value = Our_Array End Sub
VBA Kod Dökümü
- İlk olarak, biz çağırıyoruz Alt prosedür " Redim_Preserve_2D_Array_Row ".
- Ardından, değişkeni bildiririz Bizim_Dizimiz dinamik bir dizi olarak.
- Daha sonra, dizinin boyutunu tanımlayacağız. Alt sınır 3 üst sınır ise 2 'den başlar ve her ikisi de 1 .
- Ardından, diziye değerler atarız.
- Bundan sonra, değerleri C6:D8 hücre aralığı.
- Bundan sonra kodu çalıştıracağız.
- Evet, Kaydet ve Modül ve basın Koşmak .
- Sonuç olarak, değerleri tanımlanan hücre aralıklarına döndürecektir. Görüyoruz ki " Rachel " satırında 1 ve sütun 1 olarak tanımlanan pozisyon 1,1 ) VBA kodunda.
- Şimdi, diziyi yeniden boyutlandıracağız.
- Bu yüzden, bunu önceki koda ekleyin ve ilk kodu kaldırın Aralık.Değer ifadesi Ayrıca, kodun nasıl göründüğünü aşağıdaki anlık görüntüden görebilirsiniz.
ReDim Our_Array(1 ila 3, 1 ila 3) Our_Array(1, 3) = "Texas" Our_Array(2, 3) = "Mississippi" Our_Array(3, 3) = "Utah" Range("C6:E8").Value = Our_Array
- Burada, üst sınırı ( 1 için 2 ) ile ( 1 için 3 ) tarafından 1 .
- Daha sonra değerleri diziye ekledik.
- Şimdi bu kodu çalıştırırsak, önceki değerlerin korunmadığını göreceğiz. Önceki değerler için boş dönecektir.
- Şimdi, bunu şu şekilde düzeltebiliriz Anahtar kelimeyi koru içine ReDim ifadesi .
- Son olarak, tam kodumuz şu şekilde olacaktır.
Option Explicit Sub Redim_Preserve_2D_Array_Row() Dim Our_Array() As Variant ReDim Our_Array(1 To 3, 1 To 2) Our_Array(1, 1) = "Rachel" Our_Array(2, 1) = "Ross" Our_Array(3, 1) = "Joey" Our_Array(1, 2) = 25 Our_Array(2, 2) = 26 Our_Array(3, 2) = 25 ReDim Preserve Our_Array(1 To 3, 1 To 3) Our_Array(1, 3) = "Texas" Our_Array(2, 3) = "Mississippi" Our_Array(3, 3) = "Utah" Range("C6:E8").Value =Our_Array End Sub
- Şimdi, eğer Koşmak Bu kodun çıktısı şu şekilde olacaktır. Böylece, " ReDim Koruma Alanı " 'nin son boyutu 2D dizi Şimdi, bir sonraki yöntem size Excel VBA'da " ReDim Koruma Alanı " öğesini seçin ve dizinin her iki boyutunu da yeniden boyutlandırın.
Daha fazlasını okuyun: Excel'de Sütundan Diziye Benzersiz Değerler Almak için VBA (3 Kriter)
Benzer Okumalar
- Excel'de Bir Tablo Dizisi Nasıl Adlandırılır (Kolay Adımlarla)
- CSV Dosyasını Diziye Okumak için Excel VBA (4 İdeal Örnek)
- Excel VBA'da Aralığı Diziye Dönüştürme (3 Yol)
- Excel VBA: Bir Diziden Yinelenenleri Kaldırma (2 Örnek)
2. ReDim Excel VBA'da Her İki Boyutu da Koru 2D Dizi
Bu son yöntemde, yeniden boyutlandırma adımlarını ve " ReDim Koruma Alanı " dedi. 2D dizi . burada, biz kullanacağız VBA Transpoze fonksiyonunu dizinin alt sınırını yeniden boyutlandırmak için kullanırız. Eğer ilk yöntemde dizinin alt sınırını yeniden boyutlandırmaya çalışsaydık, o zaman " Alt simge aralık dışında " hatası. Şimdi, daha fazla uzatmadan, bunu nasıl düzeltebileceğimizi ve hedefimize nasıl ulaşabileceğimizi görelim.
Adımlar:
- İlk olarak, ilk yöntemde gösterildiği gibi , getir Modül Pencere.
- İkinci olarak, aşağıdaki kod satırlarını ilk koda ekleyin.
Our_Array = Application.Transpose(Our_Array) ReDim Preserve Our_Array(1 ila 3, 1 ila 4) Our_Array = Application.Transpose(Our_Array) Our_Array(4, 1) = "Monica" Our_Array(4, 2) = 26 Our_Array(4, 3) = "New Mexico" Range("C6:E9").Value = Our_Array
- Dahası, son yöntemin kodu şu şekilde görünür.
Option Explicit Sub ReDim_Preserve_2D_Array_Both_Dimensions() Dim Our_Array() As Variant ReDim Our_Array(1 To 3, 1 To 2) Our_Array(1, 1) = "Rachel" Our_Array(2, 1) = "Ross" Our_Array(3, 1) = "Joey" Our_Array(1, 2) = 25 Our_Array(2, 2) = 26 Our_Array(3, 2) = 25 ReDim Preserve Our_Array(1 To 3, 1 To 3) Our_Array(1, 3) = "Texas" Our_Array(2, 3) = "Mississippi" Our_Array(3, 3) = "Utah" Our_Array =Application.Transpose(Our_Array) ReDim Preserve Our_Array(1 ila 3, 1 ila 4) Our_Array = Application.Transpose(Our_Array) Our_Array(4, 1) = "Monica" Our_Array(4, 2) = 26 Our_Array(4, 3) = "New Mexico" Range("C6:E9").Value = Our_Array End Sub
VBA Kod Dökümü
- İlk olarak, biz çağırıyoruz Alt prosedür " ReDim_Preserve_2D_Array_Both_Dimensions ".
- Daha sonra, kodların geri kalanı VBA Transpoze fonksiyonu ilk koddakiyle aynıdır.
- Burada, diziyi ters çeviriyoruz.
- Ardından, dizinin üst sınırını artırıyoruz.
- Bundan sonra, diziyi tekrar transpoze ederiz. Bu nedenle, sonuçta alt sınır değişecektir.
- Daha sonra, eski verileri koruyarak yeniden boyutlandırılmış dizi için değerleri giriyoruz.
- Son olarak, değerleri hücre aralığına yazıyoruz C6:E9 .
- Ondan sonra, ilk yöntemde gösterildiği gibi , Koşmak Bu kod.
- Böylece, kodun bir 2D dizi kullanarak " ReDim Koruma Alanı " ve VBA Transpoze fonksiyon.
Daha fazlasını okuyun: Excel'de Diziyi Transpoze Etmek için VBA (3 Yöntem)
Hatırlanması Gerekenler
- ReDim Koruma Alanı dizinin alt sınırını değiştiremez. Bunu yapmak için Transpoze fonksiyon.
- Sadece şunları kullanabiliriz ReDim dinamik diziler üzerinde.
Sonuç
Size iki hızlı yol gösterdik " ReDim Koruma Alanı " a 2D dizi Bu yöntemlerle ilgili herhangi bir sorunla karşılaşırsanız veya benim için herhangi bir geri bildiriminiz varsa, aşağıya yorum yapmaktan çekinmeyin. Ayrıca sitemizi ziyaret edebilirsiniz ExcelWIKI Excel ile ilgili daha fazla makale için. Okuduğunuz için teşekkürler, başarılı olmaya devam edin!