Vba объявлСниС массива: ВсС ΠΏΡ€ΠΎ массивы Π² VBA Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² пошаговом руководствС ΠΏΠΎ Excel

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

VBA ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ массив — voxt.ru

Excel VBA ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ массив

ОбъявлСниС массива Π² VBA ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° dim ΠΈΠ»ΠΈ статичСского ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ частного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, СдинствСнная Ρ€Π°Π·Π½ΠΈΡ†Π° Π² объявлСнии массива ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ объявлСнии массива ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π° массива ΠΈ ниТняя Π³Ρ€Π°Π½ΠΈΡ†Π° массива.

Π’ ΠΊΠΎΠ΄Π΅ VBA ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, вмСсто объявлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство строк Π² ΠΊΠΎΠ΄Π΅.

Массив β€” это пСрСмСнная, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·. Массив прСдставляСт собой Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² VBAОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² VBAОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² VBA, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния; любая пСрСмСнная, Π½Π΅ опрСдСлСнная Π² VBA, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ значСния. Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅. НапримСр, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π° 5 ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², ΠΈ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΌΡ‹ объявляСм ΠΏΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для всСх пяти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ присваиваСм ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ; Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого.

Код:

Sub Array_Example()
  Dim Student1 As String
  Dim Student2 As String
  Dim Student3 As String
  Dim Student4 As String
  Dim Student5 As String
End Sub

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ насчСт ΠΈΠ΄Π΅ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° всСх ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ².

Π”Π°, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, объявив массив Π² VBAМассив Π² VBAМассив VBA Π² Excel β€” это Π΅Π΄ΠΈΠ½ΠΈΡ†Π° хранСния ΠΈΠ»ΠΈ пСрСмСнная, которая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ значСния ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ связанныС значСния Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ вмСстС для сохранСния Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива.Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅.

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ этот шаблон VBA Declare Array Excel здСсь β€” Π¨Π°Π±Π»ΠΎΠ½ Excel для объявлСния массива VBA

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β„–1

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ VBAΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ VBAКод VBA относится ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ инструкций, написанных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° языкС программирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Visual Basic Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Visual Basic (VBE) для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅. Π‘ΠΊΠΎΡ€Π΅Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ простым понятиям.

Π‘Π½Π°Ρ‡Π°Π»Π° запуститС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ.

Код:

Sub Array_Example()
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ строку.

Код:

Sub Array_Example()
  Dim Student As String
End Sub

ПослС объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, сколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ. Π’ этом случаС я Ρ…ΠΎΡ‡Ρƒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° пяти ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², поэтому Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Ρ‚.Π΅. ΠΎΡ‚ 1 Π΄ΠΎ 5. Π’ΠΎ ΠΆΠ΅ самоС ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² скобках.

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для этой СдинствСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° 5 ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ².

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
  Student(1) = "John"
  Student(2) = "Peter"
  Student(3) = "Ricky"
  Student(4) = "Michael"
  Student(5) = "Anderson"
End Sub

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, сколько строк ΠΌΡ‹ сократили, объявив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массивом. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов. ΠœΡ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π΅Π³ΠΎ Π² Ρ†ΠΈΠΊΠ»Ρ‹ Π² VBAΠ¦ΠΈΠΊΠ»Ρ‹ Π² VBAΠ¦ΠΈΠΊΠ» VBA Π² Excel β€” это инструкция для выполнСния ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ повторСния дСйствия нСсколько Ρ€Π°Π·.Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ ΠΆΠ΅ ΠΏΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Ρƒ мСня Π² ячСйках Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа.3

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эти числа Π² ΠΎΠΊΠ½ΠΎ сообщСния Π² VBAОкно сообщСния Π² VBAЀункция VBA MsgBox β€” это функция Π²Ρ‹Π²ΠΎΠ΄Π°, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ΅ сообщСниС, прСдоставлСнноС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΈ пСрсонализированныС сообщСния Π² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Π° для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ прСдоставляСтся ссылка Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅; Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ объявим Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer.

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
  Dim K As Integer
End Sub

Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, я сохранил ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… ΠΎΡ‚ 1 Π΄ΠΎ 5.

Π’ настоящСС врСмя ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» FOR NEXT Π² VBAΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» FOR NEXT Π² VBAВсС языки программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ†ΠΈΠΊΠ» VBA For Next. ПослС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° FOR Π² этом Ρ†ΠΈΠΊΠ»Π΅ Π΅ΡΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ, ΠΈ ΠΊΠΎΠ΄ повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнут. Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас ΠΏΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 1 Π΄ΠΎ 5.

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
  Dim K As Integer
  For K = 1 To 5
  Next K
End Sub

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ способу отобраТСния Student (1), Student (2) Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ числа ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π° поставок Β«kΒ».

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
  Dim K As Integer
  For K = 1 To 5
   Student(K) =
  Next K
End Sub

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

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
  Dim K As Integer
  For K = 1 To 5
   Student(K) = Cells(K, 1).Value
  Next K
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΊΠ½ΠΎ сообщСния ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива.

Код:

Sub Array_Example()
  Dim Student(1 To 5) As String
  Dim K As Integer
  For K = 1 To 5
   Student(K) = Cells(K, 1).Value
   MsgBox Student(K)
  Next K
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС ΠΊΠΎΠ΄. Π’ ΠΎΠΊΠ½Π΅ сообщСния ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ имя. Π‘Π½ΠΎΠ²Π° Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ok, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ имя. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ, Π½Π°ΠΆΠ°Π² Ok, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΏΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β„– 2 – Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ массив, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ рассмотрим Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π½Π° строках, Ρ‚Π°ΠΊ ΠΈ Π½Π° столбцах.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΎΡ‚ 1 Π΄ΠΎ 5; это Π»ΠΈΠ±ΠΎ концСнтрируСтся Π½Π° строках ΠΈΠ»ΠΈ столбцах.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±ΠΎΠΈΡ… строки ΠΈ столбцыБтроки ΠΈ столбцыЯчСйка β€” это пСрСсСчСниС строк ΠΈ столбцов. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ столбцы ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ называСтся Excel. ΠžΠ±Π»Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Excel Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° строки ΠΈ столбцы, ΠΈ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто этой области, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° ячСйку.Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ‚Π»ΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ массива.

Код:

Sub Two_Array_Example()
  Dim Student As String
End Sub

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ строки, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ столбца.

Код:

Sub Two_Array_Example()
  Dim Student(1 To 5, 1 To 3) As String
End Sub

Для этого я структурировал Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ ΠΈ статусу ΠΎΡ†Π΅Π½ΠΎΠΊ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² ΠΎΠΊΠ½ΠΎ кодирования.

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Ρ†ΠΈΠΊΠ»Π°.

Код:

Sub Two_Array_Example()
  Dim Student(1 To 5, 1 To 3) As String
  Dim K As Integer, J As Integer
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ΅Ρ‚Π»ΡŽ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Код:

Sub Two_Array_Example()
 Dim Student(1 To 5, 1 To 3) As String
 Dim k As Integer, J As Integer
 For k = 1 To 5
  For J = 1 To 3
   Worksheets("Student List").Select
   Student(k, J) = Cells(k, J).Value
   Worksheets("Copy Sheet").Select
   Cells(k, J).Value = Student(k, J)
  Next J
Next k
End Sub

Π­Ρ‚ΠΎ скопируСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· листа «Бписок учащихся» ΠΈ вставит ΠΈΡ… Π² Β«ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист».

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ

  • Массив β€” ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠ΅ понятиС; это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вводная Ρ‡Π°ΡΡ‚ΡŒ.
  • Π’Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ кодирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ объявлСниС массива.
  • Π§Π΅ΠΌ большС Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ массивы Π² своСм ΠΊΠΎΠ΄Π΅, Ρ‚Π΅ΠΌ большС Π²Ρ‹ ΠΊ Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Π΅Ρ‚Π΅.

УЗНАВЬ Π‘ΠžΠ›Π¬Π¨Π• >>


Post Views: 163

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ записи

ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π²Π²Π΅Ρ€Ρ…

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


Автор Антон Андронов На Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ 5 ΠΌΠΈΠ½ ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Visual Basic for Application – это структуры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранят Π½Π°Π±ΠΎΡ€Ρ‹ взаимосвязанных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Доступ ΠΊ записям массива осущСствляСтся ΠΏΠΎ ΠΈΡ… числовому индСксу.

НапримСр, Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· 20 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для дальнСйшСго использования Π² ΠΊΠΎΠ΄Π΅ VBA. МоТно Π±Ρ‹Π»ΠΎ Π±Ρ‹ просто ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ 20 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для хранСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Dim Team_Member1 As String
Dim Team_Member2 As String

...

Dim Team_Member20 As String

Но ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ простой ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ способ – ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ список ΠΈΠΌΡ‘Π½ Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² массивС ΠΈΠ· 20 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° String:

Dim Team_Members(1 To 20) As String

Π’ строкС, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ объявили массив. Π’Π΅ΠΏΠ΅Ρ€ΡŒ запишСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π΅Π³ΠΎ элСмСнтов, Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Team_Members(1) = "John Smith"

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСимущСство хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² массивС, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с использованиСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ дСйствиС Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом массива. Если Π±Ρ‹ ΠΈΠΌΠ΅Π½Π° Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Ρ‹Π»ΠΈ сохранСны Π² 20 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ 20 строк ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ дСйствиС с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ…. Однако, Ссли ΠΈΠΌΠ΅Π½Π° сохранСны Π² массивС, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ дСйствиС с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ простого Ρ†ΠΈΠΊΠ»Π°.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ продСмонстрировано Π½ΠΈΠΆΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‡Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ячСйки столбца A Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Excel.

For i = 1 To 20
Cells(i,1).Value = Team_Members(i)
Next i

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с массивом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сохранСно 20 ΠΈΠΌΡ‘Π½, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠ° ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Π°, Ρ‡Π΅ΠΌ использованиС 20 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. А Ρ‡Ρ‚ΠΎ, Ссли этих ΠΈΠΌΡ‘Π½ Π½Π΅ 20, Π° 1000? А Ссли, Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ ΠΈ отчСства?! Ясно, Ρ‡Ρ‚ΠΎ вскорС станСт ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ΄Π΅ VBA Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰ΠΈ массива.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Excel Visual Basic
  2. ОбъявлСниС массивов в Excel Visual Basic
  3. ДинамичСскиС массивы

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Visual Basic, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… шла Ρ€Π΅Ρ‡ΡŒ Π²Ρ‹ΡˆΠ΅, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ хранят простой список ΠΈΠΌΡ‘Π½. Однако, массивы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ мноТСство ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. НапримСр, Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с сСткой Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆ Π·Π° ΡΠ½Π²Π°Ρ€ΡŒ для 5 Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Для этого потрСбуСтся Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, состоящий ΠΈΠ· 5 Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ для 31 дня. Объявим массив Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Dim Jan_Sales_Figures(1 To 31, 1 To 5) As Currency

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам массива Jan_Sales_Figures, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° индСкса, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… дСнь мСсяца ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр, адрСс элСмСнта, содСрТащСго ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆ для 2-ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π° 15-ΠΎΠ΅ января Π±ΡƒΠ΄Π΅Ρ‚ записан Ρ‚Π°ΠΊ:

Jan_Sales_Figures(15, 2)

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив с 3-мя ΠΈ Π±ΠΎΠ»Π΅Π΅ измСрСниями – достаточно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСрСния Π² объявлСниС массива ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы для ссылки Π½Π° элСмСнты этого массива.

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

Π Π°Π½Π΅Π΅ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠΆΠ΅ рассмотрСли нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² объявлСния массивов Π² VBA, Π½ΠΎ эта Ρ‚Π΅ΠΌΠ° заслуТиваСт Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ рассмотрСния. Как Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Dim Team_Members(1 To 20) As String

Π’Π°ΠΊΠΎΠ΅ объявлСниС сообщаСт компилятору VBA, Ρ‡Ρ‚ΠΎ массив Team_Members состоит ΠΈΠ· 20 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ индСксам ΠΎΡ‚ 1 Π΄ΠΎ 20. Однако, Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ наши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ массива числами ΠΎΡ‚ 0 Π΄ΠΎ 19, ΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС массив Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Dim Team_Members(0 To 19) As String

На самом Π΄Π΅Π»Π΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ нумСрация элСмСнтов массива начинаСтся с 0, ΠΈ Π² объявлСнии массива Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ вовсС, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Dim Team_Members(19) As String

Π’Π°ΠΊΡƒΡŽ запись компилятор VBA расцСнит, ΠΊΠ°ΠΊ объявлСниС массива ΠΈΠ· 20 элСмСнтов с индСксами ΠΎΡ‚ 0 Π΄ΠΎ 19.

Π­Ρ‚ΠΈ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈ объявлСнии ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Visual Basic. Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈ объявлСнии Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива индСксы Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятой:

Dim Jan_Sales_Figures(1 To 31, 1 To 5) As Currency

Однако, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс для ΠΎΠ±ΠΎΠΈΡ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ массива ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Dim Jan_Sales_Figures(31, 5) As Currency

Ρ‚ΠΎ эта запись Π±ΡƒΠ΄Π΅Ρ‚ расцСнСна, ΠΊΠ°ΠΊ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит 32 элСмСнта с индСксами ΠΎΡ‚ 0 Π΄ΠΎ 31, Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ массива содСрТит 6 элСмСнтов с индСксами ΠΎΡ‚ 0 Π΄ΠΎ 5.

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

ВсС массивы Π² рассмотрСнных Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ фиксированноС количСство ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Однако, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ наш массив. МоТно Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ситуации, объявив ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ массив, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ навСрняка большС, Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ для нашСй Π·Π°Π΄Π°Ρ‡ΠΈ. Но Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ лишнСй памяти ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π•ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСский массив – это Ρ‚Π°ΠΊΠΎΠΉ массив, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСн ΠΈ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ Ρ€Π°Π· Π² процСссС выполнСния макроса.

ДинамичСский массив ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с пустыми скобками, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Dim Team_Members() As String

Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ массива Π² процСссС выполнСния ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ выраТСния ReDim:

ReDim Team_Members(1 To 20)

И Ссли Π² процСссС выполнСния ΠΊΠΎΠ΄Π° потрСбуСтся снова ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ReDim снова:

If Team_Size > 20 Then
ReDim Team_Members(1 To Team_Size)
End If

НуТно ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° динамичСского массива Ρ‚Π°ΠΊΠΈΠΌ способом ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ…Ρ€Π°Π½ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π² массивС. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΠΆΠ΅ находящиСся Π² массивС, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Preserve, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

If Team_Size > 20 Then
ReDim Preserve Team_Members(1 To Team_Size)
End If

К соТалСнию, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Preserve ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ измСрСния массива. НиТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ массива Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСльзя. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли массив ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Preserve, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСднСго измСрСния массива.

Π£Ρ€ΠΎΠΊ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ для Вас ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ сайта office-guru.ru
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: http://www.excelfunctions.net/Visual-Basic-Arrays.html
ΠŸΠ΅Ρ€Π΅Π²Π΅Π»: Антон Андронов
ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ
Π•Ρ‰Π΅ большС ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ Microsoft Excel

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ качСство ΡΡ‚Π°Ρ‚ΡŒΠΈ. Нам Π²Π°ΠΆΠ½ΠΎ вашС ΠΌΠ½Π΅Π½ΠΈΠ΅:

VBA β€” объявлСниС (Π·Π°Ρ‚Π΅ΠΌΠ½Π΅Π½ΠΈΠ΅), созданиС ΠΈ инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная массива VBA?
  • БтатичСскиС массивы
    • Π˜Π½Π΄Π΅ΠΊΡΡ‹ массивов
  • ДинамичСскиС массивы
  • Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ массивы
  • Π”Π•ΠšΠΠΠΠ«Π™ ΠœΠžΠ”Π£Π› И ΠŸΠ£Π‘Π›Π˜Π§ΠΠ«Π™ МАРБИИ
    • ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ массив
  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Arrays
    • Ѐункция Array
  • Arrys Arrays
    • .
    • ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ инициализация массивов
      • ИспользованиС ReDim
      • ИспользованиС ReDim Preserve

    Π’ этом руководствС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ (Dim), ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ массива Π² VBA

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная массива VBA?

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ массива VBA ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, хранящихся ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Массив ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ тСкст, числа ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

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

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Dim, Static, Public ΠΈΠ»ΠΈ Private.

    БтатичСскиС массивы

    БущСствуСт 2 Ρ‚ΠΈΠΏΠ° массивов – статичСскиС ΠΈ динамичСскиС. БтатичСский массив ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ объявлСнии массива. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ фиксированным массивом.

     Dim intA(4) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
     

    ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ массив объявлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Dim Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ модуля, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Ρ€Π°Π²Π΅Π½ 5, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π½Π΅ объявили Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ LBound массива.

    НСт, это Π½Π΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ°! Π Π°Π·ΠΌΠ΅Ρ€ массива Ρ€Π°Π²Π΅Π½ 5, нСсмотря Π½Π° Π²Π²ΠΎΠ΄ 4 Π² массив. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ индСксы массива автоматичСски Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля.

    Π˜Π½Π΄Π΅ΠΊΡΡ‹ массива

    Π˜Π½Π΄Π΅ΠΊΡΡ‹ массива автоматичСски Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля, Ссли Option Base 1 Π½Π΅ объявлСн Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части модуля ΠΊΠΎΠ΄Π°.

    Если объявлСно Option Base 1 , Ρ‚ΠΎ массивы автоматичСски Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 1.

    Однако я ΡΡ‡ΠΈΡ‚Π°ΡŽ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΠΌ способом ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ. Π Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ массивы Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля ΠΈΠ»ΠΈ объявлСния Option Base 1

    ВмСсто этого я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ явно ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ массивов:

     Dim intA(2 to 5) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число 

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ этом Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ массив с любого числа (Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с 1 ΠΈΠ»ΠΈ 0).

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

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ динамичСского массива β€” это массив, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎ врСмя выполнСния. Π’Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ динамичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Π΅Π· Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

     Dim intA() ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число 

    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReDim ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для указания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива послС Π΅Π³ΠΎ создания.

     ReDim intA(2) 

    Π Π°Π·ΠΌΠ΅Ρ€ динамичСского массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² любоС врСмя. Однако ΠΏΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ReDim всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΡΡ‚ΠΈΡ€Π°ΡŽΡ‚ΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вмСсто Π½ΠΈΡ… ReDim Preserve .

     ReDim Preserve intA(2) 

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ динамичСский массив Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, модуля ΠΈΠ»ΠΈ Π½Π° глобальном ΡƒΡ€ΠΎΠ²Π½Π΅, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReDim Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

    Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Π΅ массивы

    Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Π΅ массивы β€” это динамичСскиС массивы, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

     Dim varNames() 

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (прСдполагаСтся, Ρ‡Ρ‚ΠΎ это Π²Π°Ρ€ΠΈΠ°Π½Ρ‚) ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива.

    Как ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½ΠΈΠΆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Π΅ массивы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ массива (Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массивов)!

    ОбъявлСниС модуля ΠΈ общСдоступных массивов

    Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, массивы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ для использования Π² этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅:

     Sub StaticArray()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ LBound 1 ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ UBound 4
       Dim IntA (ΠΎΡ‚ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    ΠšΠΎΠ½Π΅Ρ† суб 

    Но ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля ΠΈΠ»ΠΈ Π½Π° глобальном ΡƒΡ€ΠΎΠ²Π½Π΅.

     Π―Π²Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
    
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ LBound 1 ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ UBound 4
    Dim IntA (ΠΎΡ‚ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    
    ΠŸΠΎΠ΄ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ массив ()
    End Sub 

    Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСмСнная массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Π² любом мСстС этого модуля ΠΊΠΎΠ΄Π°. ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ общСдоступный массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ VBA (см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»).

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° VBA стало ΠΏΡ€ΠΎΡ‰Π΅

    ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ VBA Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎΠ± AutoMacro β€” конструкторС ΠΊΠΎΠ΄Π° VBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с нуля с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями Π² области программирования ΠΈ мноТСством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ!

    Π£Π·Π½Π°Ρ‚ΡŒ большС!!

    ОбъявлСниС общСдоступного массива

    Π’Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ общСдоступный статичСский массив Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

     Public strNames(3) as String 

    Π­Ρ‚ΠΎ объявлСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части вашСго модуля, Π½ΠΈΠΆΠ΅ Option Explicit. Π—Π°Ρ‚Π΅ΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ VBA Π² любом ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅.

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

    Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ значСния статичСскому массиву ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

     ΠŸΠΎΠ΄ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ массив ()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ LBound 1 ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ UBound 4
      Dim IntA (ΠΎΡ‚ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    'ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив
      Π˜Π½Ρ‚Π(1) = 10
      Π˜Π½Ρ‚Π(2) = 20
      Π˜Π½Ρ‚Π(3) = 30
      Π˜Π½Ρ‚Π(4) = 40
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2 массива Π² блиТайшСм ΠΎΠΊΠ½Π΅
       ΠžΡ‚Π»Π°Π΄ΠΊΠ°. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ IntA(2)
    ΠšΠΎΠ½Π΅Ρ† суб 

    Если Π²Ρ‹ запуститС ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 20 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² блиТайшСм ΠΎΠΊΠ½Π΅.

    Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ значСния динамичСскому массиву

     Sub DynamicArray()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ динамичСский массив, Π½ΠΎ опуская связанныС значСния
       Dim IntA() ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    'ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив
       ReDim IntA (ΠΎΡ‚ 1 Π΄ΠΎ 4)
       Π˜Π½Ρ‚Π(1) = 10
       Π˜Π½Ρ‚Π(2) = 20
       Π˜Π½Ρ‚Π(3) = 30
       Π˜Π½Ρ‚Π(4) = 40
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2 массива Π² блиТайшСм ΠΎΠΊΠ½Π΅
      ΠžΡ‚Π»Π°Π΄ΠΊΠ°.ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ
      Π˜Π½Ρ‚Π΅Ρ€Π(2)
    ΠšΠΎΠ½Π΅Ρ† суб 

    Ѐункция массива

    Однако, с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ΠΌ массивом Ρ‚ΠΎΠ»ΡŒΠΊΠΎ , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ массива, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ использованиС стандартного ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

     'Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив
        intA() = Array(10, 20, 30, 40) 

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° VBA | Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вас!

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

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ массивы, пСрСбирая Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк Π² Excel

     Sub TestDynamicArrayFromExcel()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив
       Dim strNames() ΠΊΠ°ΠΊ строка
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число для подсчСта строк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
       Dim n ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число для Ρ†ΠΈΠΊΠ»Π°
       Dim i ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    'подсчитаСм строки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
       n = Range("A1", Range("A1").End(xlDown)).Rows.Count
    'ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ массив Π² количСство строк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.
       ReDim strNames(n)
       Для i = 0 To n
          strNames(i) = Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½("A1").Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅(i + 1, 0)
       Π”Π°Π»Π΅Π΅ я
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ значСния Π² массивС
       ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ MsgBox(strNames())
    ΠšΠΎΠ½Π΅Ρ† суб 

    ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ инициализация массивов

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой массив Π½Π° любом этапС вашСго ΠΊΠΎΠ΄Π°, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ потСряСтС исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, содСрТащССся Π² этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² вашСм массивС.

     ΠŸΠΎΠ΄ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ массив ()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ LBound 1 ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ UBound 4
       Dim IntA (ΠΎΡ‚ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    'ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив
       Π˜Π½Ρ‚Π(1) = 10
       Π˜Π½Ρ‚Π(2) = 20
       Π˜Π½Ρ‚Π(3) = 30
       Π˜Π½Ρ‚Π(4) = 40
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2 массива Π² блиТайшСм ΠΎΠΊΠ½Π΅
       ΠžΡ‚Π»Π°Π΄ΠΊΠ°. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ IntA(2)
    'снова ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ массив
       интА(2)= 200
       ΠžΡ‚Π»Π°Π΄ΠΊΠ°. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ IntA(2)
     ΠšΠΎΠ½Π΅Ρ† суб 

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ статичСский массив сохранит всС значСния, ΠΊΡ€ΠΎΠΌΠ΅ значСния Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2 β€” это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСнится Π½Π° 200.

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

    Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ динамичСский массив, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReDim ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установитС Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго массива. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReDim впослСдствии Π² своСм ΠΊΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ строка ΠΊΠΎΠ΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ массив intA, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΈΠΌΠ΅Π» Ρ€Π°Π·ΠΌΠ΅Ρ€ 2 (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ индСкс массива начинаСтся с 0!)

     ReDim intA(1) as Integer 

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReDim, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

     Sub TestDynamicArray()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив
       Dim intA() ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
       ReDim intA(2)
    'Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив числами
       интА(0) = 2
       intA(1) = 5
       интА(2) = 9
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ число Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 1
       ΠžΡ‚Π»Π°Π΄ΠΊΠ°. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ intA(1)
    'ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ массив, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€
       ReDim intA(3)
       интА(0) = 6
       интА(1) = 8
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ число Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 1 Π½Π° этот Ρ€Π°Π·
       ΠžΡ‚Π»Π°Π΄ΠΊΠ°. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ intA(1)
    ΠšΠΎΠ½Π΅Ρ† суб 

    Если Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² нСпосрСдствСнном ΠΎΠΊΠ½Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ReDim ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ IntA(2) ΠΈ Π½Π΅ использовали Re-Dim Preserve, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² массивС Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ, Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 3 ΠΈ 4 Π² массивС Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

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

    Если ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ReDim Preserve, ΠΎΠ½ сохранит исходныС значСния, содСрТащиСся Π² массивС.

     Sub TestDynamicArray()
    'ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив
       Dim intA() ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
       ReDim intA(2)
    'Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив числами
       интА(0) = 2
       intA(1) = 5
       интА(2) = 9
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ число Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2
       ΠžΡ‚Π»Π°Π΄ΠΊΠ°.  ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ intA(2)
    'ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ массив
       ReDim Preserve intA(3)
       интА(0) = 6
       интА(1) = 8
    'ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ число Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2 снова
      ΠžΡ‚Π»Π°Π΄ΠΊΠ°. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ intA(2)
    ΠšΠΎΠ½Π΅Ρ† сабвуфСра
     

    Π’ ΠΎΠ±ΠΎΠΈΡ… ΠΎΠΊΠ½Π°Ρ… сообщСний, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅, число 9появится, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReDim Preserve сохранил это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

    Β 

    Массив объявлСний VBA | Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив Π² Excel VBA?

    Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. И Π² процСссС объявлСния этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ становится ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ выполняСм ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ снова ΠΈ снова. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ситуаций, Π² VBA Ρƒ нас Π΅ΡΡ‚ΡŒ Declare Array Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ОбъявлСниС массива Π² Excel VBA ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½Ρƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° удовлСтворяла потрСбности ситуации. НапримСр, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π° 5 сотрудников, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΎΠ΄Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, объявляя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ 5 для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ сотрудника, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· 5 сотрудников, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ этот шаг Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ строки ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA Declare Array.

    Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив Π² Excel VBA?

    ΠœΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив Π² Excel, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ VBA.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ этот шаблон Excel с объявлСниСм массива VBA здСсь β€” Π¨Π°Π±Π»ΠΎΠ½ Excel с объявлСниСм массива VBA

    ОбъявлСниС массива VBA β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„– 1

    VBA. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

    Π¨Π°Π³ 1: ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² VBA Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ мСню «Вставка», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Π¨Π°Π³ 2: ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ VBA Declare Array, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любоС имя согласно Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ.

    Код:

     Sub VBA_DeclareArray()
    
    End Sub 

    Π¨Π°Π³ 3: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5 сотрудников Π² строкС. ΠŸΡƒΡΡ‚ΡŒ эта пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) для 5 сотрудников.

    Код:

     Sub VBA_DeclareArray()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    
    ΠšΠΎΠ½Π΅Ρ† суб 

    Π¨Π°Π³ 4: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ любоС имя для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Employee, начиная с Employee(1) ΠΈ заканчивая Employee(5).

    Код:

     Sub VBA_DeclareArray()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (1) = "Ашвани"
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (2) = "АникСт"
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (3) = "Ананд"
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (4) = "Π“Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ"
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (5) = "Π ΠΎΠ·ΠΎΠ²Ρ‹ΠΉ"
    
    End Sub 

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΌΡ‹ сократили 5 строк объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎ 1 строки.

    VBA Declare Array β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„– 2

    Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ помСстим ΠΈΠΌΠ΅Π½Π° сотрудников, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1, Π² Ρ†ΠΈΠΊΠ».

    Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массивы Π² Excel VBA.

    Π¨Π°Π³ 1: ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ VBA Declare Array, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Код:

     Sub VBA_DeclareArray2()
    
    End Sub 

    Π¨Π°Π³ 2: ПослС этого ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π² Π½Π΅ΠΌ 2 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Один для свСдСний ΠΎ сотрудникС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ для ячСйки Π² Π²ΠΈΠ΄Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа.

    Код:

     Sub VBA_DeclareArray2()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    
    End Sub 

    Π¨Π°Π³ 3: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» For-Next, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Код:

     Sub VBA_DeclareArray2()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Π—Π°
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ А
    
    End Sub 

    Π¨Π°Π³ 4: Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ условиС Π²Ρ‹Π±ΠΎΡ€Π° ячССк ΠΎΡ‚ 1 Π΄ΠΎ 5.

    Код:

     Sub VBA_DeclareArray2()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ А
    
    End Sub 

    Π¨Π°Π³ 5: Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Employee, начиная с ячСйки 1, которая ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ A.

    Код:

     Sub VBA_DeclareArray2()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A) = Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, 1). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ А
    
    ΠšΠΎΠ½Π΅Ρ† суб 

    Π¨Π°Π³ 6 :Β  Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Π΄Π²Π° способа ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Один ΠΎΡ‚ MsgBox ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ‚ Debug Print . ΠœΡ‹ всСгда использовали Msgbox, Ρ‡Ρ‚ΠΎ являСтся самым простым ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Debug Print, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° сотрудников Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

    Код:

     Sub VBA_DeclareArray2()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5) ΠΊΠ°ΠΊ строка
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A) = Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, 1). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ Debug.Print(A)
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ А
    
    ΠšΠΎΠ½Π΅Ρ† сабвуфСра
     

    Π¨Π°Π³ 7 :Β  ПослС этого ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ нСпосрСдствСнно ΠΎΠΊΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСпосрСдствСнноС ΠΎΠΊΠ½ΠΎ ΠΈΠ· строки мСню просмотра, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Π¨Π°Π³ 8 :Β  ПослС этого запуститС ΠΊΠΎΠ΄, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5 ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ воспроизвСдСния. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всСго ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ всС ΠΈΠΌΠ΅Π½Π° сотрудников ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· столбца A, ячСйки с 1 ΠΏΠΎ 5, Π² ΠΎΠΊΠ½ΠΎ Immediate.

    Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ извСстно ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива.

    VBA Declare Array β€” Example #3

    Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Для этого Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ сотрудниках. Π—Π΄Π΅ΡΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ обозначСния сотрудников. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ лист называСтся Sheet1 .

    Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массивы Π² Excel VBA.

    Π¨Π°Π³ 1: Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1. Но наряду со строками Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° столбцов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

    Код:

     Sub VBA_DeclareArray3()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    
    End Sub 

    Π¨Π°Π³ 2:Β  ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для хранСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ столбцов Π² Π²ΠΈΠ΄Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Код:

     Sub VBA_DeclareArray3()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim B ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    
    ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ 

    Π¨Π°Π³ 3:Β  Как ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅Β 1, здСсь ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» For-Next. Но наряду с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ A (строки) ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» For-Next ΠΈ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ B (столбцы). Π—Π΄Π΅ΡΡŒ количСство столбцов Ρ€Π°Π²Π½ΠΎ 3.

    Код:

     Sub VBA_DeclareArray3()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim B ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Для B = ΠΎΡ‚ 1 Π΄ΠΎ 3
    
    End Sub 

    Π¨Π°Π³ 4: Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ лист, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ массива. Π’ΠΎΡ‚ этот лист Лист1 .

    Код:

     Sub VBA_DeclareArray3()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim B ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Для B = ΠΎΡ‚ 1 Π΄ΠΎ 3
    Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист1"). Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
    
    End Sub 

    Π¨Π°Π³ 5: Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ значСния ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠ° (A, B) Π² качСствС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ здСсь.

    Код:

     Sub VBA_DeclareArray3()
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim B ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Для B = ΠΎΡ‚ 1 Π΄ΠΎ 3
    Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист1").Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A, B) = Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, B). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    
    ΠšΠΎΠ½Π΅Ρ† суб 

    Π¨Π°Π³ 6: Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΡ‹ снова Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ лист, ΠΊΡƒΠ΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Sheet1 . Π—Π΄Π΅ΡΡŒ лист Sheet2 a ΠΈ снова рассмотрим ячСйки (A, B) Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Sheet2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈΠ· Sheet1.

    Код:

     Sub VBA_DeclareArray3()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim B ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Для B = ΠΎΡ‚ 1 Π΄ΠΎ 3
    Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист1").Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A, B) = Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, B).  Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
    Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, B). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A, B)
    
    ΠšΠΎΠ½Π΅Ρ† суб 

    Π¨Π°Π³ 7: Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠ±Π° Ρ†ΠΈΠΊΠ»Π° For-Next, Π½Π°Ρ‡Π°Ρ‚Ρ‹Π΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… A ΠΈ B, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    Код:

     Sub VBA_DeclareArray3()
    
    Dim Employee (ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΎΡ‚ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ строки
    Dim A ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim B ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Для А = ΠΎΡ‚ 1 Π΄ΠΎ 5
    Для B = ΠΎΡ‚ 1 Π΄ΠΎ 3
    Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист1").Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
    Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A, B) = Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, B). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
    Π―Ρ‡Π΅ΠΉΠΊΠΈ (A, B). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ (A, B)
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π‘
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ А
    
    ΠšΠΎΠ½Π΅Ρ† суб 

    Π¨Π°Π³ 8:Β  Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС ΠΊΠΎΠ΄, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5 ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ воспроизвСдСния. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Sheet1 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² Sheet2 Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈ Π² Sheet1.

    ΠŸΠ»ΡŽΡΡ‹ Excel VBA Declare Array

    • Код Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.
    • Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ вставка ΠΈΡ… ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² соотвСтствии с нашими потрСбностями.