Багатовимірний масив VBA (2D масиви)

У цьому підручнику буде розглянуто 2-d та багатовимірні масиви у VBA.

Багатовимірний масив (2D масиви)

Багатовимірні масиви-це масиви, які містять більше ніж один вимір, зазвичай два або три виміри, але масиви можуть мати до 32 вимірів.

Оголошення 2D -масиву

Щоб створити масив з більш ніж одним виміром, використовуйте коми для визначення кожного окремого виміру:

1 Затемнити intArr (2,3) як ціле число

Заповнення 2D -масиву

Наведений нижче код заповнить двовимірний масив, а потім заповнить рядки та стовпці аркуша значеннями в масиві.

1234567891011121314151617181920212223242526 Sub Populate2D ()'оголосити 2D -масивDim intA (2, 3) як ціле число'оголошувати змінніDim rw як ціле числоDim col як ціле число'заповнити масивintA (0, 0) = 45intA (0,1) = 50intA (0, 2) = 55intA (0, 3) = 60intA (1, 0) = 65intA (1, 1) = 70intA (1, 2) = 75intA (1, 3) = 80intA (2, 0) = 85intA (2, 1) = 90intA (2, 2) = 95intA (2, 3) = 100'цикл через масив та заповнення ExcelДля rw = 0 до 2Для col = 0 до 3Клітини (rw + 1, col + 1). Значення = intA (rw, col)Наступний колНаступний rwEnd Sub

Вашу електронну таблицю Excel слід заповнити таким чином.

Заповнення 2D -масиву з даних Excel

Наведений нижче код заповнить 2D -масив з робочого аркуша Excel, а потім заповнить дані іншим аркушем.

1234567891011121314151617181920212223242526 Sub Populate2D ()'Оголосіть робочі аркушіЗатемнити ws_Source як аркушЗатемнити ws_Destination як робочий аркуш'Оголосити масивDim wsData (10, 2) як варіант'Оголосіть змінніDim rw як IntegerDim col як ціле число'зверніться до вихідного аркушаВстановити ws_Source = Робочі листи ("Аркуш1")'отримати інформацію з вихідного аркуша та заповнити масивДля rw = LBound (wsData, 1) До UBound (wsData, 1)Для col = LBound (wsData, 2) До UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Зсув (rw, col). ЗначенняНаступний колНаступний rw'зверніться до таблиці звільненняВстановити ws_Destination = Робочі листи ("Аркуш2")'заповнити аркуш призначення з масивуДля rw = LBound (wsData, 1) До UBound (wsData, 1)Для col = LBound (wsData, 2) До UBound (wsData, 2)ws_Destination.Range ("A1"). Зсув (rw, col) .Value = wsData (rw, col)Наступний колНаступний rwEnd Sub

Зміна розміру за допомогою ReDim та Re-Dim Preserve

Ви можете змінити розмір масиву за допомогою ReDim.

1234567891011121314151617 Sub Resize2D ()'оголосити масивDim varArray () як Variant'оголосити розмір масивуReDim varArray (1, 2)varArray (0, 0) = "Мел Сміт"varArray (0, 1) = "Фред пряжка"varArray (0, 2) = "Джейн Ейр"varArray (1, 0) = "Бухгалтер"varArray (1, 1) = "Секретар"varArray (1, 2) = "Лікар"'повторно оголосити розмір масивуReDim varArray (0, 1)'повторно заповнити масивvarArray (0, 0) = "Мел Сміт"varArray (0, 1) = "Фред пряжка"End Sub

При повторному оголошенні масиву ви втратите будь -які дані, які раніше зберігалися в масиві, якщо ви не використовуєте Заява про збереження ReDim.

12345678910111213141516 Sub Resize2D ()'оголосити масив Dim varArray () як Variant'оголосити розмір масивуReDim varArray (1, 2)varArray (0, 0) = "Мел Сміт"varArray (0, 1) = "Фред пряжка"varArray (0, 2) = "Джейн Ейр"varArray (1, 0) = "Бухгалтер"varArray (1, 1) = "Секретар"varArray (1, 2) = "Лікар"'повторно оголосити розмір масивуReDim Preverve varArray (1, 3)'заповнити масив додатковими значеннямиvarArray (0, 3) = "Роб Барнс"varArray (1, 3) = "Сантехнік"End Sub

Ви можете змінити розмір останнього виміру масиву, лише якщо потрібно зберегти вихідні дані в масиві за допомогою Заповідник Re-Dim.

Коли ви натискаєте налагодження, помилка буде виділена, показуючи, що перший вимір у масиві не такий, як перший вимір, коли розмір масиву був оголошений спочатку.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave