ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив

Π’ΠΈΠΏΡ‹ массивов

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² VBA ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования дСлятся Π½Π° 2 класса:

ОбъявлСниС массивов

ОбъявлСниС фиксированных массивов

РСкомСндация : ΠΏΡ€ΠΈ объявлСнии массивов VBA я ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π²Π°ΠΌ Π΄Π°Π²Π°Ρ‚ΡŒ всСм ΠΈΠΌΠ΅Π½Π°ΠΌ прСфикс » arr «. Π― сторонник вСнгСрской Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ.

Помимо Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ Π²ΠΏΡ€Π°Π²Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ НЕ зависит ΠΎΡ‚ option base <0|1>:

Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ Π² явном Π²ΠΈΠ΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈ ниТнюю, ΠΈ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ниТняя Π³Ρ€Π°Π½ΠΈΡ†Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с 0 ΠΈΠ»ΠΈ 1. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, индСксы Π³Ρ€Π°Π½ΠΈΡ† ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ниТняя Π±Ρ‹Π»Π° мСньшС Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ.

Помимо ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΈ массивы с Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ большС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹.

ОбъявлСниС динамичСских массивов

ДинамичСскиС массивы ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ:

Однако, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… послС Ρ‚Π°ΠΊΠΎΠ³ΠΎ объявлСния ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ нСльзя. НСобходимо Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ массив. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСским массивом ΠΊΠ°ΠΊ Ρ€Π°Π· состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ программист ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π΅Π³ΠΎ своСврСмСнноС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ (усСчСниС) Π² памяти. Для этого сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

ReDim [Preserve] varname(subscripts) [As Type]

ПослС этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты массива arrOpen с 0-Π³ΠΎ ΠΏΠΎ 5-ΠΉ. Всё, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΏΡ€ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ option base ΠΈ ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ, Π²Π΅Ρ€Π½ΠΎ ΠΈ для динамичСских массивов. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сохранили ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² элСмСнтах 0-5 ΠΈ Ρƒ вас поспСла новая порция ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для элСмСнтов 6-11. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ массивС Π½ΠΎΠ²Ρ‹Π΅ элСмСнты ΠΈ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ старыС, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ИзмСнСниС элСмСнтов массива

Как ΠΈ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ запись ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² элСмСнт массива происходит Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания (=), Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ индСкса элСмСнта массива.

Π§Ρ‚Π΅Π½ΠΈΠ΅ элСмСнтов массива

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ† массива

LBound( array [, dimension])

UBound( array [, dimension])

Если Π²Ρ‹ ΠΎΡˆΠΈΠ±Ρ‘Ρ‚Π΅ΡΡŒ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ индСкса массива, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° исполнСния с ΠΊΠΎΠ΄ΠΎΠΌ 9. Π­Ρ‚Π° ΠΆΠ΅ ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚, Ссли Π²Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ LBound / UBound ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 3 для Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива).

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π€ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов массива

БобствСнно массивы Π½ΡƒΠΆΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ… ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ†ΠΈΠΊΠ»Π΅. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ с ΠΎΠ΄Π½ΠΈΠΌ элСмСнтом массива, Π° Ρ†ΠΈΠΊΠ» повторяСт эти Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ дСйствия для всСх элСмСнтов массива.

Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ способ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†, Ссли Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ нас знания Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ индСкса массива:

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° массивов Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Массив с элСмСнтами Ρ‚ΠΈΠΏΠ° массив

ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² качСствС элСмСнтов массива Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ:

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π€ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

Ѐункция Array

Array( arglist )

Ѐункция Split

Split Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, содСрТащий подстроки, ΠΈΠ· строкового Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ раздСлитСля

Split(expression[, delimiter[, limit[, compare]]])

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядит Ρ‚Π°ΠΊ:

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π€ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

ΠΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСскими массивами

НСинициализированный массив

Π£ динамичСского массива Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ состояниС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡƒΠΆΠ΅ объявлСн, Π½ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΈΡ… элСмСнтов.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ динамичСского массива Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ состояниС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями LBound / UBound для опрСдСлСния Π΅Π³ΠΎ (массива) статуса. Π­Ρ‚ΠΎ особСнно Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с массивами. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ) массив Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π»Π΅Ρ‚ΠΈΡ‚ с ошибкой 9.

Для этого я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ниТСописанной IsNotEmptyArray :

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ массива

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ динамичСский массив приходится Π² Ρ†ΠΈΠΊΠ»Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ 2 стратСгии: Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π° 1 элСмСнт, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этом Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ (Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ это эластичным Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ), ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ авансом, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ скачками, скаТСм сразу Π½Π° 100 элСмСнтов. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, я для сСбя сдСлал Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ авансовоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ опСрация Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Π° ΠΈ, Ρ‡Π΅ΠΌ Ρ€Π΅ΠΆΠ΅ вызываСтся, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅.

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π€ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

Авансовый ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹ΡˆΠ΅Π» Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅

УдалСниС массива

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ массива Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Excel

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ источники

Π’ качСствС источника Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ массивам я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ рСсурс Π§Π°Ρ€Π»ΡŒΠ·Π° ΠŸΠΈΡ€ΡΠΎΠ½Π° (Charles H. Pearson). Π•Π³ΠΎ сайт слСдуСт ΡˆΡ‚ΡƒΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всСм, ΠΊΡ‚ΠΎ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ осваиваСт VBA. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ массивам Ρ‚Π°ΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ, исходныС ΠΊΠΎΠ΄Ρ‹, снабТСнныС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉΡˆΠΈΠΌΠΈ коммСнтариями, ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ объяснСния для ΠΊΠΎΠΏΠ°ΡŽΡ‰ΠΈΡ… Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ. Π‘Π΅Π· прСувСличСния Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ рСсурс!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Visual Basic

Массив β€” это Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ элСмСнты, логичСски взаимосвязаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. НапримСр, массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· числа учащихся Π² словарС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива β€” это количСство учащихся ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΡ†Π΅Π½ΠΎΠΊ учащСгося для класса. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива являСтся ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° эти связанныС значСния ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ называСтся индСксом ΠΈΠ»ΠΈ подиндСксом для обозначСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта Π² зависимости ΠΎΡ‚ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² массивС. Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 1 мСньшС, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‰Π΅Π΅ число элСмСнтов Π² массивС. ΠΏΡ€ΠΈ использовании синтаксиса Visual Basic для опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива указываСтся Π΅Π³ΠΎ самый высокий индСкс, Π° Π½Π΅ ΠΎΠ±Ρ‰Π΅Π΅ число элСмСнтов Π² массивС. МоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивом ΠΊΠ°ΠΊ с Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ элСмСнтов освобоТдаСт вас ΠΎΡ‚ нСобходимости Π·Π½Π°Ρ‚ΡŒ, сколько элСмСнтов ΠΎΠ½ΠΎ содСрТит Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

НСсколько простых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ описаниСм:

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива Π² простом массивС

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ students для хранСния числа учащихся Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ классС Π² школС. Π˜Π½Π΄Π΅ΠΊΡΡ‹ элСмСнтов находятся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 6. ИспользованиС этого массива ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ объявлСниС сСми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС ΠΏΠΎΠΊΠ°Π·Π°Π½ students массив. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива:

индСкс элСмСнта прСдставляСт ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ класс (индСкс 0 прСдставляСт дСтский сад);

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, содСрТащССся Π² элСмСнтС, прСдставляСт число ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² Π² этом классС.

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„. Π€ΠΎΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΌΠΈΡ„

Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ содСрТится ΠΊΠΎΠ΄ Visual Basic, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ массив:

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ выполняСтся Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ:

students Массив Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ являСтся ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ индСкс. Массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ индСкса ΠΈΠ»ΠΈ подстрочного, называСтся ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ измСрСния массива Π² Visual Basic.

БозданиС массива

Π Π°Π·ΠΌΠ΅Ρ€ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколькими способами.

Π Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ объявлСнии массива:

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, New Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании:

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ReDim инструкции. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ReDim инструкция сохранит значСния Π² массивС, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаСт пустой массив. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ReDim для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² описании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ReDim.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ значСния Π² массивах.

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ массива

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° массива ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎ врСмя Π΅Π³ΠΎ создания. Π›ΠΈΡ‚Π΅Ρ€Π°Π» массива состоит ΠΈΠ· списка Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ( <> ).

ΠŸΡ€ΠΈ создании массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° массива ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ массива, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° для задания Ρ‚ΠΈΠΏΠ° массива. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² массива. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ массива Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ряд ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒ массиву. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² массива.

ΠŸΡ€ΠΈ использовании Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² массива для создания ΠΈ заполнСния массива Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, Ссли число элСмСнтов Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов Π½Π΅ совпадаСт. Ошибка Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли Π²Ρ‹ явно объявили ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ число ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ массива.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ How to: Initialize an Array Variable in Visual Basic (ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива Π² Visual Basic).

ΠŸΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ массиву

ΠŸΡ€ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ массиву Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π² массивС ΠΎΡ‚ самого Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ индСкса ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ ΠΈΠ»ΠΈ ΠΎΡ‚ самого Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для. Next ΠΈΠ»ΠΈ For Each. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Next для ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ элСмСнтов массива. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π²Π΅Ρ€Ρ…Π½ΠΈΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ массива, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Array.GetUpperBound ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ наибольшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса. Π₯отя наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Ρ€Π°Π²Π½ΠΎ 0, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Array.GetLowerBound ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ выполняСтся итСрация ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массиву с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ For. Next инструкции.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ выполняСтся ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ For. Next инструкции. ΠœΠ΅Ρ‚ΠΎΠ΄ GetUpperBound ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅. GetUpperBound(0) Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ измСрСния ΠΈ GetUpperBound(1) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наибольший индСкс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ измСрСния.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ For Each. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Nextдля ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива.

Π Π°Π·ΠΌΠ΅Ρ€ массива

Π Π°Π·ΠΌΠ΅Ρ€ массива являСтся ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½ всСх Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Он прСдставляСт собой ΠΎΠ±Ρ‰Π΅Π΅ число элСмСнтов, Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ содСрТащихся Π² массивС. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ элСмСнтами Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Ρ€Π°Π²Π΅Π½ 16 (ΠΈΠ»ΠΈ (3 + 1) * (3 + 1).

Π Π°Π·ΠΌΠ΅Ρ€ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства Array.Length. Π”Π»ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСрСния ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Array.GetLength ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

БущСствуСт ряд особСнностСй, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ массива.

Вип массива

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π΅Π³ΠΎ элСмСнтов. НС сущСствуСт Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, подходящСго для всСх массивов. ВмСсто этого Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… массива опрСдСляСтся числом ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ( Ρ€Π°Π½Π³ΠΎΠΌ) массива ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π΅Π³ΠΎ элСмСнтов. Π”Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ массива ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π½Π³ ΠΈ ΠΈΡ… элСмСнты ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π»ΠΈΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ массива Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… массива.

Π’Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… массива ΠΈΠ»ΠΈ Π΅Π³ΠΎ элСмСнтов ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠœΠ°ΡΡΠΈΠ²Ρ‹ массивов

Иногда структура Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ являСтся Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ. НапримСр, массив ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ высокой Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ дня мСсяца. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ массива прСдставляСт мСсяц, Π½ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ прСдставляСт количСство Π΄Π½Π΅ΠΉ, Π° число Π΄Π½Π΅ΠΉ Π² мСсяцС являСтся Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ. НСмассивный массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ называСтся массивом массивов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚Π°ΠΊΠΈΡ… сцСнариСв. НСмассивный массив β€” это массив, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ массивами. Массив массивов ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² Π½Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив мСсяцСв, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся массивом Π΄Π½Π΅ΠΉ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив массива, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Π½Ρ‹Π΅ мСсяцы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ΅ количСство Π΄Π½Π΅ΠΉ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ созданиС массива массивов, присвоСниС Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ значСния массива массивов Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ для элСмСнта Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ For. Next Ρ†ΠΈΠΊΠ»Π°. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ значСния элСмСнтам массива массивов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² массива. Однако ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ массива (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Dim valuesjagged = <<1, 2>, <2, 3, 4>> ) ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ возникновСнию ошибки компилятора BC30568. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ массива Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. ΠšΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° массива, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ с Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ внСшнСго массива, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹

Visual Basic ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ массив (массив, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎ Nothing ) ΠΈ массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ пустой массив (массив Π±Π΅Π· элСмСнтов). НСинициализированный массив β€” это Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π» присвоСнныС Π΅ΠΌΡƒ значСния. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

Массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ-1. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

Массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ случаях.

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Π±Ρ‹Π» простым, Π½Π΅ трСбуя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² Nothing качСствС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ случая.

Код взаимодСйствуСт с интСрфСйсом API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ массива Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

РаздСлСниС массива

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π½Π° нСсколько массивов. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… массив Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½, Π° Π·Π°Ρ‚Π΅ΠΌ спиттинг массив Π² Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… массива.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½Π΅ рассматриваСтся Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ строки Π½Π° массив строк, основанный Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅. БвСдСния ΠΎ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ строки см. Π² описании String.Split ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ раздСлСния массива.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² массивС. НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив большС, Ρ‡Π΅ΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число элСмСнтов, Π½Π° нСсколько ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½Ρ‹Ρ… частСй. Для этой Ρ†Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Array.Length Array.GetLength ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слуТит Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ мСсто раздСлСния массива. МоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ значСния, Π²Ρ‹Π·Π²Π°Π² Array.FindIndex Array.FindLastIndex ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ.

ПослС опрСдСлСния индСкса ΠΈΠ»ΠΈ индСксов, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… массив Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ массивы, Π²Ρ‹Π·Π²Π°Π² Array.Copy ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ массив разбиваСтся Π½Π° Π΄Π²Π° массива ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. (Если ΠΎΠ±Ρ‰Π΅Π΅ число элСмСнтов массива Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ массив содСрТит Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт, Ρ‡Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ.)

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ массив строк разбиваСтся Π½Π° Π΄Π²Π° массива Π½Π° основС наличия элСмСнта, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎ «zzz», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слуТит Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ массива. НовыС массивы Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ элСмСнт, содСрТащий Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

БоСдинСниС массивов

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько массивов Π² ΠΎΠ΄ΠΈΠ½ массив большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Для этого Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Array.Copy ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½Π΅ обсуТдаСтся объСдинСниС массива строк Π² ΠΎΠ΄Π½Ρƒ строку. БвСдСния ΠΎ присоСдинСнии массива строк см. Π² описании String.Join ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

ΠŸΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ элСмСнтов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ массива Π² Π½ΠΎΠ²Ρ‹ΠΉ массив Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ массив Π±Ρ‹Π» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» достаточно большим для размСщСния Π½ΠΎΠ²ΠΎΠ³ΠΎ массива. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… способов.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ добавлСнию Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… массивов с Π΄Π΅ΡΡΡ‚ΡŒΡŽ элСмСнтами Π² ΠΎΠ΄ΠΈΠ½ массив.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом случаС исходныС массивы Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ динамичСски Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ массив ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ добавлСния элСмСнтов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива Π² Π½Π΅Π³ΠΎ. Π­Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ массивам

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания фиксированного числа строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ массивов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… явного измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива ReDim инструкциСй, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ растут ΠΈ ΡΠΆΠΈΠΌΠ°ΡŽΡ‚ΡΡ динамичСски Π² соотвСтствии с потрСбностями прилоТСния.

ΠΏΡ€ΠΈ использовании ReDim для пСрСизмСрСния массива Visual Basic создаСт Π½ΠΎΠ²Ρ‹ΠΉ массив ΠΈ освобоТдаСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ. Π­Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя выполнСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли количСство элСмСнтов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, часто ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΠΈΠ»ΠΈ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ максимальноС количСство элСмСнтов, Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ.

НСкоторыС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСтся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² дальнСйшСм ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ быстро ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ связанный с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Если коллСкция содСрТит элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· классов Π² пространствС ΠΈΠΌΠ΅Π½ System.Collections.Generic. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ коллСкция обСспСчиваСт ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π΅ нСльзя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ коллСкциях см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

VBA Excel. ΠœΠ°ΡΡΠΈΠ²Ρ‹ (ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅, динамичСскиС)

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² VBA Excel: ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ динамичСскиС. ОбъявлСниС ΠΈ использованиС массивов. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Public, Dim ΠΈ ReDim. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Array, LBound, UBound.

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ОбъявлСниС ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… (Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ…) статичСских массивов Π² VBA Excel:

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ массив содСрТит 10 элСмСнтов ΠΎΡ‚ 0 Π΄ΠΎ 9 (Π½ΠΈΠΆΠ½ΠΈΠΉ индСкс ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” 0, Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ индСкс β€” 9), Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ массив содСрТит 9 элСмСнтов ΠΎΡ‚ 1 Π΄ΠΎ 9.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ VBA Excel считаСт Π² массивах Π½ΠΈΠΆΠ½ΠΈΠΌ индСксом Π½ΡƒΠ»ΡŒ, Π½ΠΎ, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ½ΠΈΠΌ индСксом ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² самом Π½Π°Ρ‡Π°Π»Π΅ модуля объявлСниС Β«Option Base 1Β». ВмСсто Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ индСкса ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ОбъявлСниС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… статичСских массивов Π² VBA Excel Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ объявлСнию ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, Π½ΠΎ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ размСрностСй Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

Π’Ρ€Π΅Ρ‚ΠΈΠΉ массив состоит ΠΈΠ· 10000 элСмСнтов β€” 10Γ—10Γ—10Γ—10.

ДинамичСскиС массивы

ДинамичСскиС массивы Π² VBA Excel, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ статичСских, ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π΅Π· указания размСрности:

Π’Π°ΠΊΠΈΠ΅ массивы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстна Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, которая опрСдСляСтся Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Когда нуТная Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива становится извСстна, ΠΎΠ½Π° Π² VBA Excel пСрСопрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ReDim:

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ динамичСских массивов Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎ количСству ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ количСству элСмСнтов Π² ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ReDim Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ массив, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ с Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ массива Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции с сообщСниСм: Array already dimensioned (Массив ΡƒΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½).

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ размСрности динамичСских массивов Π² VBA Excel Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ значСния ΠΈΡ… элСмСнтов. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Preserve:

ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€

Π Π°Π·ΠΌΠ΅Ρ€ массива – это ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½ всСх Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Он прСдставляСт собой ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов, содСрТащихся Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² массивС.

По ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с сайта Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массивов зависит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ доступного объСма памяти. ИспользованиС массивов, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ объСм доступной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сниТСнию скорости, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСмС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запись Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с диска.

ИспользованиС массивов

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π³Π΄Π΅ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· массивов.

1. Как извСстно, функция Split Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив подстрок, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ строки с раздСлитСлями. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ строковому (As String) ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ динамичСскому массиву. Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ устанавливаСтся автоматичСски Π² зависимости ΠΎΡ‚ количСства подстрок.

2. Π”Π°Π½Π½Ρ‹Π΅ Π² массивах ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π² ячСйках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа. ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Excel ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎ мСрцаниям экрана, Ссли Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ (Application.ScreenUpdating) Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ значСния ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² динамичСский массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания (=). Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива установится автоматичСски. ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² массивС ΠΊΠΎΠ΄ΠΎΠΌ VBA ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Excel. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания (=) ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Array, LBound, UBound

Ѐункция Array

Ѐункция Array Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив элСмСнтов Ρ‚ΠΈΠΏΠ° Variant ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ списка элСмСнтов, пСрСчислСнных Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ. НумСрация элСмСнтов Π² массивС начинаСтся с нуля. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту массива ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΊΠ°Π·Π°Π² Π² скобках Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ (индСкс).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Ѐункция Array

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Variant, содСрТащСС массив.

Бинтаксис

Array(arglist)

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ _arglist _ β€” это Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ запятыми список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… элСмСнтам массива, содСрТащСгося Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Variant. Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, создаСтся пустой массив.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π­Ρ‚Π° нотация, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для ссылки Π½Π° элСмСнт массива, состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² скобках содСрТится порядковый Π½ΠΎΠΌΠ΅Ρ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт.

НиТняя Π³Ρ€Π°Π½ΠΈΡ†Π° массива, создаваСмого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Array, опрСдСляСтся Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Option Base, ΠΊΡ€ΠΎΠΌΠ΅ случаСв, ΠΊΠΎΠ³Π΄Π° ΠΊ Array добавляСтся имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VBA.Array). Если имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Option Base Π½Π΅ влияСт Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Array.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Variant, Π½Π΅ объявлСнная ΠΊΠ°ΠΊ массив, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ массив. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Variant ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ массив любого Ρ‚ΠΈΠΏΠ°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ строк фиксированной Π΄Π»ΠΈΠ½Ρ‹ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π₯отя пСрСмСнная Variant, содСрТащая массив, ΠΏΠΎ сущСству отличаСтся ΠΎΡ‚ массива, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ Variant, доступ ΠΊ элСмСнтам массива осущСствляСтся Ρ‚Π°ΠΊ ΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция Array Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Variant, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ массив.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ обратная связь

Π•ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Office VBA ΠΈΠ»ΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ? Руководство ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам получСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Office VBA ΠΈ обратная связь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

VBA Excel. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк ΠΈ массив (ΠΎΠ±ΠΌΠ΅Π½ значСниями)

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк Π² массив ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA Excel. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° значСниями ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΈ массивом.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк Π² массив

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк Π² массив, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (As Variant) ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ значСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания (=):

VBA Excel автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ размСрности Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк, Π² нашСм случаС Π² массив β€” a(1 To 3, 1 To 3), ΠΈ заполняСт Π΅Π³ΠΎ значСниями. НумСрация ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ массивов, созданных Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, начинаСтся с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (1).

МоТно, Π² этом случаС, ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ сразу динамичСский массив, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эта пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ массивом. Π’Π°ΠΊ ΠΊΠ°ΠΊ свойством Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² VBA Excel являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Value), Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΊΠΎΠ΄Π΅ явно Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Π½ΠΎ, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡΡ такая конструкция, аналогичная ΠΏΠ΅Ρ€Π²ΠΎΠΉ:

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для копирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк Π² массив ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ динамичСский массив ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (Variant). VBA Excel автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Если ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ получится, Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрирована ошибка с сообщСниСм: Can’t assign to array (НСльзя Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ массив).

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· массива Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк

ЗначСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания (=):

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ массива ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с нуля (0). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² измСрСниях массива Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с количСством строк ΠΈ столбцов Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ячССк. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ значСния Π² ΠΎΠ΄Π½Ρƒ строку ΠΈΠ»ΠΈ Π² ΠΎΠ΄ΠΈΠ½ столбСц, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ СдинствСнной строки ΠΈΠ»ΠΈ СдинствСнного столбца ΠΊΠ°ΠΊ (0) ΠΈΠ»ΠΈ (1 To 1), Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ своСго массива с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. НапримСр, для записи дСсяти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· массива Π² ΠΎΠ΄Π½Ρƒ строку ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ массив β€” massiv(9, 0), ΠΈΠ»ΠΈ Π² ΠΎΠ΄ΠΈΠ½ столбСц β€” massiv(0, 9).

Для вставки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк ΠΈΠ· массива идСально ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ массив, созданный для копирования Π² Π½Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π’ этом случаС, Π΄Π°Π½Π½Ρ‹Π΅ с Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Excel пСрСносятся Π² массив, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ, послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚Ρƒ ΠΆΠ΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС.

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° значСниями

Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ составлСны Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… дСйствий, просто скопируйтС ΠΈΡ… Π² свой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ любой ΠΊΠ½ΠΈΠ³ΠΈ Excel с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ макросов ΠΈ запуститС ΠΏΠΎ-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива значСниями ΠΈ ΠΈ ΠΈΡ… присвоСниС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ ячССк Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС Excel:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *