ΠΠ°ΡΡΠΈΠ² Π² vba: ΠΠ°ΡΡΠΈΠ²Ρ — Visual Basic | Microsoft Learn
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ°ΠΊ Π² VBA ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². ArrayList / Π₯Π°Π±Ρ
ΠΠΎΠ³Π΄Π° Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΡΡΡΠ΅ΡΠΈΠ» ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ, ΠΏΠΎΠ΄ΡΠΌΠ°Π» Β«ΠΠ°ΡΠ΅ΠΌ? ΠΠ΅Π΄Ρ Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΡΒ». Π ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΠΊΠ°ΠΊ ΠΆΠΈΠ» Π±Π΅Π· Π½Π΅Π³ΠΎ ΡΠ°Π½ΡΡΠ΅.
ΠΠ°ΡΠ½Ρ ΡΡΠ°Π·Ρ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ Π»ΠΈΡΡΠ΅ Π² ΡΡΠΎΠ»Π±ΡΠ΅ 1 Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π€ΠΠ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ².
Π‘ΠΏΠΈΡΠΎΠΊ Π€ΠΠ
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΎΠ±ΡΠ°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π€ΠΠ ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ (Π½Ρ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ°). Π‘Π½Π°ΡΠ°Π»Π° ΡΠ΅ΡΠΈΠΌ Π΅Π΅ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ArrayList
, Π° Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ GetDistinctItems
ΠΈ Π² Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠΎΠ»Π±Π΅Ρ Ρ Π€ΠΠ. Π ΡΠ°ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ±Π΅Π³Π°Π΅ΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ For Each
ΠΏΠΎ Π²ΡΠ΅ΠΌ Π€ΠΠ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡ Buffer
(Dictionary
). ΠΠ°Π»Π΅Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Keys
ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DescendingSort
(ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΡΠ·ΡΡΡΠΊΠΎΠΌ) ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Sorted
, ΠΊΠΎΡΠΎΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ.
Public Sub Main() Dim FullNameColumn As Range Set FullNameColumn = ActiveSheet.UsedRange.Columns(1) ' ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ. Dim DistinctList As Variant DistinctList = GetDistinctItems(FullNameColumn) ' ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΡΡΠ½ΠΊΡΠΈΡ. Debug.Print Join(DistinctList, vbCrLf) ' ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. End Sub Public Function GetDistinctItems(ByRef Range As Range) As Variant Dim Data As Variant: Data = Range.Value ' ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΌΠ°ΡΡΠΈΠ². Dim Buffer As Object: Set Buffer = CreateObject("Scripting.Dictionary") ' Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Dictionary. Dim Item For Each Item In Data If Not Buffer.Exists(Item) Then Buffer.Add Item, Empty ' ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅ΡΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. Next Dim Sorted As Variant Sorted = DescendingSort(Buffer.Keys()) ' Π‘ΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ DescendingSort. GetDistinctItems = Sorted ' ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. End Function Public Function DescendingSort(ByRef Data As Variant) As Variant Dim i As Long For i = LBound(Data) To UBound(Data) - 1 Dim j As Long For j = i + 1 To UBound(Data) If Data(i) < Data(j) Then Dim Temp As Variant Temp = Data(j) Data(j) = Data(i) Data(i) = Temp End If Next Next DescendingSort = Data End Function
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ
Π’ΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ? ΠΠΏΠΎΠ»Π½Π΅. ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ? ΠΡ Π² ΡΠ΅Π»ΠΎΠΌ Π΄Π°, Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅ΠΉ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ.
Π§ΡΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠ΅
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ArrayList
ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ System.Collections
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ mscorlib
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IList
. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π² VBA ΠΎΠ½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ΅Π·Π°Π½ Π² ΠΏΠ»Π°Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΈΠ½Π°ΡΠ΅ ΠΈ Π±ΡΡΡ Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² AddRange
ΠΈΠ»ΠΈ BinarySearch
). ΠΠΎ ΠΈ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ Π½ΡΠΆΠ½ΠΎ) ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΠ³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Add
. ΠΠ΄Π΅-ΡΠΎ Ρ ΡΠΈΡΠ°Π», ΡΡΠΎ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ (Π΄Π° ΠΏΡΠΎΡΡΡΡ ΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠΎΠΊΠΈ, Ρ Π½Π΅ Π·Π½Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ) Π΅ΡΡΡ ΡΠ²ΠΎΠΈ Π½ΡΠ°Π½ΡΡ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ, ΠΎΡΠΊΡΠΎΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π·Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π» ΠΈ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΈΠ·-Π·Π° Π½Π΅Π³ΠΎ Π΅ΡΠ»ΠΈ ΠΈ ΡΠ°ΡΡΠ΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅, ΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ.
Π ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΈΠ»Π° Π±ΡΠ°Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ?
ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΡ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΠ΅ΠΌΡ ReDim
(ΠΈ ΡΠΆ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Preserve
) ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π Π΄Π°Π»ΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π²ΠΊΡΡΠ½ΡΡ ΠΈ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ToArray
. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΎΠ½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΏΠ° Variant
.
ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΈΡ
Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Contains
.
Π-ΡΡΠ΅ΡΡΠΈΡ
, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±ΡΡΡ ΠΏΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ UBound
, Π²Π΅Π΄Ρ Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Count
, ΠΊΠΎΡΠΎΡΠΎΠ΅, ΠΊΠ°ΠΊ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ
Π² ΠΎΠ±ΡΠ΅ΠΊΡ.
Π-ΡΠ΅ΡΠ²Π΅ΡΡΡΡ
, Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ (ΠΌΠ΅ΡΠΎΠ΄ Sort
), ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ (ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Sort
, Π° ΠΏΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠΎΠ΄ Reverse
).
ΠΡ ΠΈ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠ±Π΅Π³Π°Π΅ΠΌ ΠΏΠΎ ΠΎΡΡΠ°Π²ΡΠΈΠΌΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ:
Item(Index)
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ:
IndexOf(Item, StartFrom)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ StartFrom
ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
RemoveAt(Index)
Π£Π΄Π°Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
Remove(Item)
Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
RemoveRange(StartPosition, Count)
Π£Π΄Π°Π»ΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². StartPosition
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Count
Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.
Clear()
Π£Π΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
Insert(Position, Item)
ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
Clone()
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΏΠΎ ΡΡΡΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π° Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ).
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ ΡΡΠ΄ΠΎ
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ArrayList
ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CreateObject
:
Dim List As Object Set List = CreateObject("System. Collections.ArrayList")
ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Tools -> Reference ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ mscorlib.dll, Π° Π΄Π°Π»ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ:
Dim List As New ArrayList
ΠΠΈΠ½ΡΡ ΠΈ ΡΠΎΠΉ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅. ΠΡΠΈΡΠΈΠ½Ρ Π»ΠΈΡΠ½ΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, Π½ΠΎ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ VBA Π² Excel (Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ») Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Π² ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΈΡ
ΠΈ ΡΠ°ΠΊ Π½Π΅Ρ Π½ΠΈ Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Object
, Π° Π²ΠΎΡ Π² ΡΠ°Π½Π½Π΅ΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ).
ΠΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΎΠ±ΡΡΠ²ΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ IList
ΠΈ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅ΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ ArrayList
, Π½ΠΎ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ Π±ΠΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Sort
, ToArray
, Reverse
.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ
ΠΠΎΠΌΠ½ΠΈΡΠ΅ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ? ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ Buffer
(ArrayList
), ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Contains
Π½Π°Π»ΠΈΡΠΈΠ΅ Π€ΠΠ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Sort
ΠΈ Reverse
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ. ΠΡΠ³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ToArray
. Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ Π½Π° ΡΡΠΎΡ ΡΠ°Π· Π²ΡΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅ΠΉ.
Public Sub Main() Dim FullNameColumn As Range Set FullNameColumn = ActiveSheet.UsedRange.Columns(1) ' ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ. Dim DistinctList As Variant DistinctList = GetDistinctItems(FullNameColumn) ' ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΡΡΠ½ΠΊΡΠΈΡ. Debug.Print Join(DistinctList, vbCrLf) ' ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. End Sub Public Function GetDistinctItems(ByRef Range As Range) As Variant Dim Data As Variant: Data = Range.Value ' ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΌΠ°ΡΡΠΈΠ². Dim Buffer As Object: Set Buffer = CreateObject("System.Collections.ArrayList") ' Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ArrayList. Dim Item For Each Item In Data If Not Buffer.Contains(Item) Then Buffer.Add Item ' ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅ΡΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. Next Buffer.Sort: Buffer.Reverse ' Π‘ΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ (ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ). GetDistinctItems = Buffer.ToArray() ' ΠΡΠ³ΡΡΠΆΠ°Π΅ΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°. End Function
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
Π§ΡΠΎ Π² ΠΈΡΠΎΠ³Π΅
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ»Π°ΡΡΠΎΠΌ Collection
Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ (Π±Π΅Π· ΡΠ°Π½ΡΠ΅Π² Ρ Π±ΡΠ±Π½ΠΎΠΌ) ΠΈ Π±ΡΡΡΡΠ°Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° (Π±Π΅Π· Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΊΠ»Π°).
ΠΠ΅ΡΠ΅Π΄ ΠΊΠ»Π°ΡΡΠΎΠΌ Dictionary
, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ½Ρ).
ΠΡ ΠΈ ΠΎΠ±Π° Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ Π² ΠΏΠ»Π°Π½Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ Ρ.Π΄.
Π ΠΎΠ±ΡΠ΅ΠΌ ΠΈ ΡΠ΅Π»ΠΎΠΌ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° Range
Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², Π½ΠΎ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠΈΠΊΠ»Π΅), ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅, ArrayList
ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
Π£ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΡΠΈΡΡΠΎΠΌ ΠΠ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ automation error -2146232576 ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ArrayList.
Π‘ΡΠ΄Ρ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΎΡΠ²Π΅ΡΡ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ mscorlib Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ .NET Framework 3.5.
Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ -> ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ -> ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Windows -> ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π³Π°Π»ΠΎΡΠΊΡ Π½Π°ΠΏΡΠΎΡΠΈΠ² .NET Framework 3.5 (Π²ΠΊΠ»ΡΡΠ°Π΅Ρ .NET 2.0 ΠΈ 3.0) ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π° ΠΠ ΡΠΊΠ°ΡΠ°ΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ Excel. Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²ΡΠ΄Π°Π» ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠΏΡΠ°Π²ΠΈΠ»ΠΎΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Excel ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π ΡΠ»ΠΎΠ²Ρ Π½Π° ΠΌΠΎΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΠ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π±ΡΠ»ΠΎ, Ρ.Π΅. Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΆΠ΅ Π±ΡΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΡΠ°Π½Π½ΠΈΡ Windows, Π½Π΅ Π·Π½Π°Ρ ΡΠΎΡΠ½ΠΎ).
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°.
ΠΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°? ΠΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ !
Π ΡΠ°ΠΊΠΆΠ΅, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΠΌΠΎΠΉΒ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌΠΌ.
ΠΠ°ΡΡΠΈΠ²Ρ Π² VBA: ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
ΠΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π° ΡΠ°Π·. ΠΠΎΠ³Π΄Π° ΡΡΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ½ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
- ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ
- ΠΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ReDim
- ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
- Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
- LBound
- UBound
- Split
- Join
- Filter
- IsArray
- Erase
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠ°ΡΡΠΈΠ²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΊΠΎΠ±ΠΊΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΊΠ°Π·Π°Π½ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ .
'Method 1 : Using Dim Dim arr1() 'Without Size 'Method 2 : Mentioning the Size Dim arr2(5) 'Declared with size of 5 'Method 3 : using 'Array' Parameter Dim arr3 arr3 = Array("apple","Orange","Grapes")
- Π₯ΠΎΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 5, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ 6 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ZERO.
- ΠΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ.
- ΠΠ°ΡΡΠΈΠ²Ρ VBScript ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠ°.
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() Dim arr(5) arr(0) = "1" 'Number as String arr(1) = "VBScript" 'String arr(2) = 100 'Number arr(3) = 2.45 'Decimal Number arr(4) = #10/07/2013# 'Date arr(5) = #12.45 PM# 'Time msgbox("Value stored in Array index 0 : " & arr(0)) msgbox("Value stored in Array index 1 : " & arr(1)) msgbox("Value stored in Array index 2 : " & arr(2)) msgbox("Value stored in Array index 3 : " & arr(3)) msgbox("Value stored in Array index 4 : " & arr(4)) msgbox("Value stored in Array index 5 : " & arr(5)) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM
ΠΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ°ΡΡΠΈΠ²Ρ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 60 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅.
ΠΏΡΠΈΠΌΠ΅Ρ
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠ΅ΠΌΡ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΡΡΡΠΌΡ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ.
Private Sub Constant_demo_Click() Dim arr(2,3) as Variant ' Which has 3 rows and 4 columns arr(0,0) = "Apple" arr(0,1) = "Orange" arr(0,2) = "Grapes" arr(0,3) = "pineapple" arr(1,0) = "cucumber" arr(1,1) = "beans" arr(1,2) = "carrot" arr(1,3) = "tomato" arr(2,0) = "potato" arr(2,1) = "sandwitch" arr(2,2) = "coffee" arr(2,3) = "nuts" msgbox("Value in Array index 0,1 : " & arr(0,1)) msgbox("Value in Array index 2,2 : " & arr(2,2)) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ReDim
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ReDim ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡReDim [Preserve] varname(subscripts) [, varname(subscripts)]
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- Preserve — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
- Varname — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ .
- Subscript — ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΏΡΠΈΠΌΠ΅Ρ
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, Π° Π·Π°ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ»ΠΈΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ, ΡΠ΅ΠΌ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ, Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ.
Private Sub Constant_demo_Click() Dim a() as variant i = 0 redim a(5) a(0) = "XYZ" a(1) = 41.25 a(2) = 22 REDIM PRESERVE a(7) For i = 3 to 7 a(i) = i Next 'to Fetch the output For i = 0 to ubound(a) Msgbox a(i) Next End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
XYZ
41.25
22
3
4
5
6
7
ΠΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
Π VBScript Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
LBound
Π€ΡΠ½ΠΊΡΠΈΡ LBound Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, LBound ΠΌΠ°ΡΡΠΈΠ²Π° — ZERO.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡLBound(ArrayName[,dimension])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- ArrayName — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°.
- Π Π°Π·ΠΌΠ΅Ρ — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ ΡΡΠΎ Β«1Β», ΡΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ;Π΅ΡΠ»ΠΈ ΡΡΠΎ Β«2Β», ΡΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() Dim arr(5) as Variant arr(0) = "1" 'Number as String arr(1) = "VBScript 'String arr(2) = 100 'Number arr(3) = 2.45 'Decimal Number arr(4) = #10/07/2013# 'Date arr(5) = #12. 45 PM# 'Time msgbox("The smallest Subscript value of the given array is : " & LBound(arr)) ' For MultiDimension Arrays : Dim arr2(3,2) as Variant msgbox("The smallest Subscript of the first dimension of arr2 is : " & LBound(arr2,1)) msgbox("The smallest Subscript of the Second dimension of arr2 is : " & LBound(arr2,2)) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
The smallest Subscript value of the given array is : 0
The smallest Subscript of the first dimension of arr2 is : 0
The smallest Subscript of the Second dimension of arr2 is : 0
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
UBound
Π€ΡΠ½ΠΊΡΠΈΡ UBound Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡUBound(ArrayName[,dimension])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- ArrayName — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°.
- Π Π°Π·ΠΌΠ΅Ρ — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ ΡΡΠΎ Β«1Β», ΡΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ;Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ°Π²Π΅Π½ Β«2Β», ΡΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Ρ. Π΄.
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() Dim arr(5) as Variant arr(0) = "1" 'Number as String arr(1) = "VBScript 'String arr(2) = 100 'Number arr(3) = 2.45 'Decimal Number arr(4) = #10/07/2013# 'Date arr(5) = #12.45 PM# 'Time msgbox("The smallest Subscript value of the given array is : " & UBound(arr)) ' For MultiDimension Arrays : Dim arr2(3,2) as Variant msgbox("The smallest Subscript of the first dimension of arr2 is : " & UBound(arr2,1)) msgbox("The smallest Subscript of the Second dimension of arr2 is : " & UBound(arr2,2)) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
The Largest Subscript value of the given array is : 5
The Largest Subscript of the first dimension of arr2 is : 3
The Largest Subscript of the Second dimension of arr2 is : 2
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ°ΠΌΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
Split
Π€ΡΠ½ΠΊΡΠΈΡ Split Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡSplit(expression [,delimiter[, count[, compare]]])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ — ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. Π‘ΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ.
- Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ.
- Count — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ, ΠΈ Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ -1, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ.
- Compare — ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
- 0 = vbBinaryCompare — Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
- 1 = vbTextCompare — Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() ' Splitting based on delimiter comma '$' Dim a as Variant Dim b as Variant a = Split("Red $ Blue $ Yellow","$") b = ubound(a) For i = 0 to b msgbox("The value of array in " & i & " is :" & a(i)) Next End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
The value of array in 0 is :Red
The value of array in 1 is : Blue
The value of array in 2 is : Yellow
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π Π°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ.
Join
ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠΎ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡJoin(List[,delimiter])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- Π‘ΠΏΠΈΡΠΎΠΊ — ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ.
- Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. Π‘ΠΈΠΌΠ²ΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ
Space
.
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() ' Join using spaces a = array("Red","Blue","Yellow") b = join(a) msgbox("The value of b " & " is :" & b) ' Join using $ b = join(a,"$") msgbox("The Join result after using delimiter is : " & b) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
The value of b is :Red Blue Yellow
The Join result after using delimiter is : Red$Blue$Yellow
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠΎ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ.
Filter
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ»ΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠΎΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΡΠΈΠ»ΡΡΡΠ°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡFilter(inputstrings, value[, include [,compare]])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- Inputstrings — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°.
- ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ — ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ΅ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ inputstrings.
- Include — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ.
- Compare — ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
- 0 = vbBinaryCompare — Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
- 1 = vbTextCompare — Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() Dim a,b,c,d as Variant a = array("Red","Blue","Yellow") b = Filter(a,"B") c = Filter(a,"e") d = Filter(a,"Y") For each x in b msgbox("The Filter result 1: " & x) Next For each y in c msgbox("The Filter result 2: " & y) Next For each z in d msgbox("The Filter result 3: " & z) Next End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.p The Filter result 1: Blue
The Filter result 2: Red
The Filter result 2: Blue
The Filter result 2: Yellow
The Filter result 3: Yellow
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠΎΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΡΠΈΠ»ΡΡΡΠ°.
IsArray
Π€ΡΠ½ΠΊΡΠΈΡ IsArray Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²Ρ ΠΎΠ΄Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ NOT ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡIsArray(variablename)
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() Dim a,b as Variant a = array("Red","Blue","Yellow") b = "12345" msgbox("The IsArray result 1 : " & IsArray(a)) msgbox("The IsArray result 2 : " & IsArray(b)) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
The IsArray result 1 : True
The IsArray result 2 : False
Π€ΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²Ρ ΠΎΠ΄Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ.
Erase
Π€ΡΠ½ΠΊΡΠΈΡ Erase ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ±ΡΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². ΠΠ½ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡErase ArrayName
- Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ Π½ΡΠ»Ρ.
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ «».
- ΠΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Nothing
.
ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Private Sub Constant_demo_Click() Dim NumArray(3) NumArray(0) = "VBScript" NumArray(1) = 1.05 NumArray(2) = 25 NumArray(3) = #23/04/2013# Dim DynamicArray() ReDim DynamicArray(9) ' Allocate storage space. Erase NumArray ' Each element is reinitialized. Erase DynamicArray ' Free memory used by array. ' All values would be erased. msgbox("The value at Zeroth index of NumArray is " & NumArray(0)) msgbox("The value at First index of NumArray is " & NumArray(1)) msgbox("The value at Second index of NumArray is " & NumArray(2)) msgbox("The value at Third index of NumArray is " & NumArray(3)) End Sub
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄.
The value at Zeroth index of NumArray is
The value at First index of NumArray is
The value at Second index of NumArray is
The value at Third index of NumArray is
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
Β Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π°Π²ΡΠΎΡΡ ΡΠ°ΠΉΡΠ° ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΏΠΈΡ
ΠΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ°ΡΡΡ? ΠΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ Π΅Ρ Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΎΡΠ·ΡΠ² Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ !
ΠΠ°ΡΡΠΈΠ²Ρ VBA — ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Excel
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅
- ΠΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² VBA
- ΠΠ°ΡΡΠΈΠ²Ρ
- ΠΡΠ°ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² VBA
- ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²? — Π‘ΠΊΠΎΡΠΎΡΡΡ!
- Π‘ΠΎΠ·Π΄Π°ΡΡ / ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² (DIM)
- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²
- ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²
- Redim vs. Redim Proverve
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠΏΡΠΎΡΠ΅Π½ΠΎ
- .
- ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
- 2D / ΠΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
- ΠΡΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
- 1D ΠΡΠΈΠΌΠ΅Ρ
- 2D Array ΠΡΠΈΠΌΠ΅Ρ
- 3D Array ΠΡΠΈΠΌΠ΅Ρ
- 5 / ΡΠ°Π·ΠΌΠ΅Ρ
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π¦ΠΈΠΊΠ»
- Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΊΠ» 2D-ΠΌΠ°ΡΡΠΈΠ²Π°
- Clear Array
- Count Array
- Remove Duplicates
- Filter
- IsArray Function
- Join Array
- Split String into Array
- Const Array
- Copy Array
- Transpose
- Function Return Array
Π VBA ΠΠ°ΡΡΠΈΠ² β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΊΠ°ΠΊ ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΡΠ΅Π΅ΠΊ: ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ΅ΠΉΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΡΠΈΠ²Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ (ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅), Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ (ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ ΠΈ ΡΡΠΎΠ»Π±ΡΠ°Ρ ) ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ. Π Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π½ΠΎΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°) Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
VBA Array Quick Sheet
ΠΠ°ΡΡΠΈΠ²Ρ
Π‘ΠΎΠ·Π΄Π°ΡΡ
Dim arr(1 To 3) As Variant
arr(1) = Β«ΠΎΠ΄ΠΈΠ½Β»
arr(2) = Β«Π΄Π²Π°Β»
arr(3) = Β«ΡΡΠΈΒ»
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠ· Excel
Π£ΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΉΠΊΠΈ (ΠΎΡ 1 Π΄ΠΎ 3) ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ
ΠΠ°ΡΠ΅ΠΌΠ½ΠΈΡΡ ΡΡΠ΅ΠΉΠΊΡ ΠΊΠ°ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, i ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
i = LBound(arr)
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (Β«A1:A3Β»)
i = i + 1
arr(i) = cell.value
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ΅ΠΉΠΊΠ°
Π§ΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
Dim i as Long
For i = LBound(arr) To UBound(arr)
MsgBox arr(i)
Next i
Erase
Erase arr
Array to String
Dim sName As String
sName = Join(arr, β:β)
Reserve aDrr Size
3 100)
Set Value
arr(1) = 22
VBA Quick Examples
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
Sub ArrayExample() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" msgbox strNames(3) ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²: strNames ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ΅ΡΡΡΠ΅ (ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ) ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΡΠ΅ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΠ·Π° ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅Π²Π΅Π»ΠΈΠΊΠ°: ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΡΡΡΠ΅Ρ .
Β
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΈΡΡΠΈΠ½Π½ΡΡ ΠΌΠΎΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°:
Sub ArrayExample2() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 60000) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 strNames(i) = Cells(i, 1).Value ΠΠ°Π»Π΅Π΅ Ρ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ 60 000 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΈ ΠΌΡ Π±ΡΡΡΡΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΡΠΎΠ»Π±ΡΠ° A ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π»ΠΈΡΡΠ°.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΡΡΠΈΠ²Π°? — Π‘ΠΊΠΎΡΠΎΡΡΡ!
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ , ΠΏΠΎΡ ΠΎΠΆΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠ΅ Π»ΠΈΡΡΡ Excel:
- ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ΅ΠΉΠΊΠ° (ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- ΠΠΎΡΡΡΠΏ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠ΅ (ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎ Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ ΠΈ ΡΡΠΎΠ»Π±ΡΠ΅.
- Π Π°Π±ΠΎΡΠΈΠΉ Π»ΠΈΡΡ Π£ΠΏΡ. ΡΡΠ΅ΠΉΠΊΠΈ (1,4). Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = Β«Π‘ΡΡΠΎΠΊΠ° 1, ΡΡΠΎΠ»Π±Π΅Ρ 4Β»
- ΠΠ°ΡΡΠΈΠ² ΠΏΡ. arrVar(1,4) = «Π‘ΡΡΠΎΠΊΠ° 1, Π‘ΡΠΎΠ»Π±Π΅Ρ 4»
Π’Π°ΠΊ Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·ΠΈΡΡΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ? ΠΠΎΡΠ΅ΠΌΡ Π±Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΈΡΠ°ΡΡ ΠΈ Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΡΠ΅ΠΉΠΊΠΈ Excel? ΠΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ: Π‘ΠΊΠΎΡΠΎΡΡΡ!
Π§ΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ Π² ΡΡΠ΅ΠΉΠΊΠΈ Excel β ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅!
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅/ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° (Dim)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠ°ΡΡΠΈΠ²Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Β«ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉΒ». ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌ Π²Π°Ρ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ β ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ. Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠ½ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°:
Sub StaticArray1() 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 1,2,3,4 Dim arrDemo1 (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 4,5,6,7 Dim arrDemo2 (ΠΎΡ 4 Π΄ΠΎ 7) Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 0,1,2,3 Dim arrDemo3 (ΠΎΡ 0 Π΄ΠΎ 3) As Long End Sub
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°:
Sub StaticArray2() 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 0,1,2,3 Dim arrDemo1(3) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ°ΠΆΠ½ΠΎ! ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 0. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Dim arrDemo1(3) ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 0,1,2,3.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Option Base 1 Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ² Π½Π°ΡΠΈΠ½Π°Π»ΡΡ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 1:
Option Base 1 Π‘ΡΠ±ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²3() 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 1,2,3 Dim arrDemo1(3) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° End Sub
ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ (ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎ) ΠΏΡΠΎΡΡΠΎ ΡΠ²Π½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ VBA ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΠ΅
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ ΠΊΠΎΠ΄Π° VBA Π² ΡΠ΅ΡΠΈ. Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± AutoMacro β ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π° VBA, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ Π½ΡΠ»Ρ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ!
Π£Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ β ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ (ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
Variant Arrays
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΈΠΏ ΠΌΠ°ΡΡΠΈΠ²Π° Variant .
Dim arrVar() As Variant
Π‘ Variant Array ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. Π Π°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 0 (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Option Base 1 Π² Π½Π°ΡΠ°Π»ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ)
Sub VariantArray() Dim arrVar() ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ 'ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠ°Π·ΠΌΠ΅Ρ = 0,1,2,3) arrVar = ΠΠ°ΡΡΠΈΠ² (1, 2, 3, 4) 'ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠ°Π·ΠΌΠ΅Ρ = 0,1,2,3,4) arrVar = ΠΠ°ΡΡΠΈΠ²("1Π°", "2Π°", "3Π°", "4Π°", "5Π°") 'ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ 4 ("5a") MsgBox arrVar(4) ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ΅Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ»Ρ Π½Π΅Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ:
Sub DynamicArray1() Dim arrDemo1() ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° 'ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 1,2,3,4 ReDim arrDemo1 (ΠΎΡ 1 Π΄ΠΎ 4) End Sub
Π‘Π½Π°ΡΠ°Π»Π° Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ², Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΠΎΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°:
Dim arrDemo1() As String
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ReDim Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°:
'ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 1,2,3,4 ReDim arrDemo1(1 To 4)
ReDim ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. Π§ΠΈΡΠ°ΠΉΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΎ ΡΠ°Π·Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ReDim ΠΈ ReDim Preserve.
ReDim ΠΏΡΠΎΡΠΈΠ² ReDim Preserve
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ReDim Π²Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ReDim Preserve Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°:
'ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 1,2,3,4 (ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) ReDim Preserve arrDemo1(1 To 4)
Π£ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π²ΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΠ΅Π±Ρ ΠΎΡΠ΅Π»ΠΎΠΌΠ»Π΅Π½Π½ΡΠΌ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΠ°ΡΡΠΈ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ VBA | ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²Π°Ρ!
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π° ΡΠ°Π·:
Sub ArrayExample() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" End Sub
Π‘ Variant Array Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ (ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²):
Sub ArrayExample_1Line() Dim strNames() ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ strNames = Array("Π¨Π΅Π»Π»ΠΈ", "Π‘ΡΠΈΠ²", "ΠΠΈΠΌΠ°", "Π₯ΠΎΡΠ΅") End Sub
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Subscript Out of Range:
strNames(5) = "Shannon"
Π ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ°Π·Π½Π°ΡΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ°ΡΡΠΈΠ²ΡΒ» Π½ΠΈΠΆΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ.
ΠΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°
Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΠ΅ΠΉΠΊΠΈ:
Range("A1").Value = strNames(1) ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A2"). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = strNames (2) ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A3"). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = strNames (3) ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A4"). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = strNames (4)
ΠΠ°Π·Π½Π°ΡΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ°ΡΡΠΈΠ²Ρ
Π§ΡΠΎΠ±Ρ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»:
Sub RangeToArray() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 60000) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 strNames(i) = Cells(i, 1).Value ΠΠ°Π»Π΅Π΅ Ρ End Sub
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΡΡΠ΅ΠΉΠΊΠΈ A1: A60000, Π½Π°Π·Π½Π°ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π΅ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ:
ΠΠ»Ρ i = 1 Π΄ΠΎ 60000 Π―ΡΠ΅ΠΉΠΊΠΈ(i, 1).Value = strNames(i) ΠΠ°Π»Π΅Π΅ Ρ
ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅: Π½Π°Π·Π½Π°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΠ΅ΠΉΠΊΠ°ΠΌ A1:A60000
2D/ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ (1D) ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎ 32 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π΅ 1D ΠΊΠ°ΠΊ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ ΡΡΠΎΠ»Π±ΡΠ΅ ΡΡΠ΅Π΅ΠΊ Excel, ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π΅ 2D, ΠΊΠ°ΠΊ ΠΎ ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π»ΠΈΡΡΠ΅ Excel Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ, Π° ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π΅ 3D, ΠΊΠ°ΠΊ ΠΎ ΡΠ΅Π»ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ². (ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΊΠ°ΠΊ ΠΎ ΠΊΡΠ±ΠΈΠΊΠ΅ Π ΡΠ±ΠΈΠΊΠ°).
ΠΠ²ΡΠΎΠΌΠ°ΠΊΡΠΎΡ | ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° VBA | ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ!
ΠΡΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° 1D
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΠΎΠ΄Π½Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ²Ex_1d() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 60000) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° 'ΠΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 strNames(i) = Cells(i, 1).Value ΠΠ°Π»Π΅Π΅ Ρ 'ΠΡΠ²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 ΠΠΈΡΡΡ("ΠΡΡ ΠΎΠ΄"). Π―ΡΠ΅ΠΉΠΊΠΈ(i, 1).Value = strNames(i) ΠΠ°Π»Π΅Π΅ Ρ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΡΠΈΠΌΠ΅Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:
Sub ArrayEx_2d() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 60000, ΠΎΡ 1 Π΄ΠΎ 10) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° Dim i As Long, j As Long 'ΠΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 ΠΠ»Ρ j = ΠΎΡ 1 Π΄ΠΎ 10 strNames(i, j) = Cells(i, j).Value Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ j ΠΠ°Π»Π΅Π΅ Ρ 'ΠΡΠ²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 ΠΠ»Ρ j = ΠΎΡ 1 Π΄ΠΎ 10 ΠΠΈΡΡΡ("ΠΡΡ ΠΎΠ΄").Π―ΡΠ΅ΠΉΠΊΠΈ(i, j).Value = strNames(i, j) Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ j ΠΠ°Π»Π΅Π΅ Ρ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π»ΠΈΡΡΠ°ΠΌΠΈ:
Sub ArrayEx_3d() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 60000, ΠΎΡ 1 Π΄ΠΎ 10, ΠΎΡ 1 Π΄ΠΎ 3) Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Dim i As Long, j As Long, k As Long 'ΠΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΠ»Ρ ΠΊ = ΠΎΡ 1 Π΄ΠΎ 3 ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 ΠΠ»Ρ j = ΠΎΡ 1 Π΄ΠΎ 10 strNames(i, j, k) = Sheets("ΠΠΈΡΡ" & k). Cells(i, j).Value Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ j ΠΠ°Π»Π΅Π΅ Ρ Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ k 'ΠΡΠ²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΠ»Ρ ΠΊ = ΠΎΡ 1 Π΄ΠΎ 3 ΠΠ»Ρ Ρ = 1 Π΄ΠΎ 60000 ΠΠ»Ρ j = ΠΎΡ 1 Π΄ΠΎ 10 ΠΠΈΡΡΡ (Β«ΠΡΠ²ΠΎΠ΄Β» ΠΈ k). Π―ΡΠ΅ΠΉΠΊΠΈ (i, j). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = strNames (i, j, k) Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ j ΠΠ°Π»Π΅Π΅ Ρ Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ k ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ²ΡΠΎΠΌΠ°ΠΊΡΠΎΡ | ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° VBA | ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ!
ΠΠ»ΠΈΠ½Π°/ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈ Π²Π°Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΡΡΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ/ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ UBound ΠΈ LBound
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ/ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ UBound ΠΈ LBound Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°:
Sub UBoundLBound() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° MsgBox UBound(strNames) MsgBox LBound(strNames) End Sub
ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π²ΡΡ (ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 1) Π΄Π°ΡΡ Π²Π°ΠΌ Π΄Π»ΠΈΠ½Ρ:
GetArrLength = UBound(strNames) - LBound(strNames) + 1
Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½Π° ΠΌΠ°ΡΡΠΈΠ²Π°:
ΠΡΠ±Π»ΠΈΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ GetArrLength(a As Variant) As Long ΠΡΠ»ΠΈ ΠΡΡΡΠΎ(Π°) Π’ΠΎΠ³Π΄Π° GetArrLength = 0 ΠΡΠ΅ GetArrLength = UBound(a) - LBound(a) + 1 ΠΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ
ΠΡΠΆΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°? ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ: Π Π°ΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°.
Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±Ρ ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ²Π°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ:
Sub ArrayExample_Loop1() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" ΠΠ»Ρ i = ΠΎΡ 1 Π΄ΠΎ 4 MsgBox strNames(i) ΠΠ°Π»Π΅Π΅ Ρ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° (Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ LBound ΠΈ UBound ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°:
Sub ArrayExample_Loop2() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" ΠΠ»Ρ i = LBound(strNames) To UBound(strNames) MsgBox strNames(i) ΠΠ°Π»Π΅Π΅ Ρ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ²ΡΠΎΠΌΠ°ΠΊΡΠΎΡ | ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° VBA | ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ!
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ β Ρ ΡΠΈΠΊΠ»ΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ. ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
Sub ArrayExample_Loop3() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° Π’ΡΡΠΊΠ»ΡΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² strNames ΠΠ»Π΅ΠΌΠ΅Π½Ρ MsgBox Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
Π¦ΠΈΠΊΠ» For Each Array Loop Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ.
Π¦ΠΈΠΊΠ» ΡΠ΅ΡΠ΅Π· Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ UBound ΠΈ LBound Π΄Π»Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ UBound ΠΈ LBound ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡΠΈ Π²Π΅ΡΡ Π½ΡΡ ΠΈ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ (1 Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, 2 Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ).
Sub ArrayExample_Loop4() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4, ΠΎΡ 1 Π΄ΠΎ 2) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° Dim i As Long, j As Long strNames(1, 1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2, 1) = "Π‘ΡΠΈΠ²" strNames(3, 1) = "ΠΠΈΠΌΠ°" strNames(4, 1) = "Π₯ΠΎΡΠ΅" strNames(1, 2) = "Π¨Π΅Π»Π±ΠΈ" strNames(2, 2) = "Π‘ΡΠΈΠ²Π΅Π½" strNames(3, 2) = "ΠΠ΅ΠΌΠΎ" strNames(4, 2) = "ΠΠΆΠ΅ΡΡΠΈ" ΠΠ»Ρ j = LBound(strNames, 2) To UBound(strNames, 2) ΠΠ»Ρ i = LBound(strNames, 1) To UBound(strNames, 1) MsgBox strNames(i, j) ΠΠ°Π»Π΅Π΅ Ρ Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ j ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΡΠΈΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²
Π§ΡΠΎΠ±Ρ ΠΎΡΠΈΡΡΠΈΡΡ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Erase:
Erase strNames
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
Sub ArrayExample() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" Π‘ΡΠ΅ΡΠ΅ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΡΡΠ°Π½ΠΈΡ End Sub
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΎΡΠΈΡΡΠΈΠ² ΡΠ°ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°:
ReDim strNames(1 to 2)
ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° 2, ΡΠ΄Π°Π»ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 3 ΠΈ 4.
AutoMacro | ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° VBA | ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ!
ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ UBound ΠΈ LBound (ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅).
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ), ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΠ².
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
Sub ArrayLoopandCount() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° Dim i As Long, n As Long strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" ΠΠ»Ρ i = LBound(strNames) To UBound(strNames) ΠΡΠ»ΠΈ strNames(i) <> "" Π’ΠΎΠ³Π΄Π° ΠΏ = ΠΏ + 1 ΠΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΠ°Π»Π΅Π΅ Ρ MsgBox n & "ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ Π½Π΅ΠΏΡΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ." End Sub
Π£Π΄Π°Π»ΠΈΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ
Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, VBA Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° (ΠΎΠ½Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Π°Ρ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΅Π΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅).
Π€ΠΈΠ»ΡΡΡ
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ»ΡΡΡΠ° VBA ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ². ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π½ΡΠΆΠ΄.
Sub Filter_Match() 'ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Dim strNames ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ strNames = Array("Π‘ΡΠΈΠ² Π‘ΠΌΠΈΡ", "Π¨Π΅Π½Π½ΠΎΠ½ Π‘ΠΌΠΈΡ", "Π Π°ΠΉΠ°Π½ ΠΠΆΠΎΠ½ΡΠΎΠ½") 'ΠΠ°ΡΡΠΈΠ² ΡΠΈΠ»ΡΡΡΠΎΠ² Dim strSubNames ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ strSubNames = Π€ΠΈΠ»ΡΡΡ(strNames, "ΠΡΠ·Π½Π΅Ρ") 'ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° MsgBox "ΠΠ°ΠΉΠ΄Π΅Π½ΠΎ " ΠΈ UBound(strSubNames) - LBound(strSubNames) + 1 & " ΠΈΠΌΠ΅Π½Π°." ΠΠΎΠ½Π΅Ρ ΡΡΠ±
Π€ΡΠ½ΠΊΡΠΈΡ IsArray
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ IsArray:
Sub IsArrayEx() 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ 1,2,3 Dim arrDemo1(3) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° 'Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Dim str As String MsgBox IsArray(arrDemo1) MsgBox IsArray(ΡΡΡΠΎΠΊΠ°) End Sub
ΠΠ²ΡΠΎΠΌΠ°ΠΊΡΠΎΡ | ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° VBA | ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ!
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡΡΠΎ Β«ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΒ» Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ:
Sub Array_Join() Dim strNames (ΠΎΡ 1 Π΄ΠΎ 4) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° Dim joinNames As String strNames(1) = "Π¨Π΅Π»Π»ΠΈ" strNames(2) = "Π‘ΡΠΈΠ²" strNames(3) = "ΠΠΈΠΌΠ°" strNames(4) = "Π₯ΠΎΡΠ΅" joinNames = ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ (strNames, ",") MsgBox End Sub
Π Π°Π·Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π½Π° ΠΌΠ°ΡΡΠΈΠ²
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ VBA ΡΠ°Π·Π΄Π΅Π»ΠΈΡ ΡΡΡΠΎΠΊΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
Sub Array_Split() Dim Names () ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° DimjoinNames As String joinNames = "Π¨Π΅Π»Π»ΠΈ, Π‘ΡΠΈΠ², ΠΠ΅ΠΌΠ°, Π₯ΠΎΡΠ΅" ΠΠΌΠ΅Π½Π° = Π Π°Π·Π΄Π΅Π»ΠΈΡΡ (ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ",") ΠΠΌΠ΅Π½Π° MsgBox(1) End Sub
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΡΡ ΡΡΡΠΎΠΊΡ ΡΠ΅ΠΊΡΡΠ° Β«Π¨Π΅Π»Π»ΠΈ, Π‘ΡΠΈΠ², ΠΠ΅ΠΌΠ°, Π₯ΠΎΡΠ΅Β» Π½Π° ΠΌΠ°ΡΡΠΈΠ² (ΡΠ°Π·ΠΌΠ΅Ρ 4), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ-Π·Π°ΠΏΡΡΡΡ (,).
Const ΠΠ°ΡΡΠΈΠ²
ΠΠ°ΡΡΠΈΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π² VBA. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ, ΡΠΎΠ·Π΄Π°Π² ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°:
' ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π€ΡΠ½ΠΊΡΠΈΡ ΠΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΉΠΠ°ΡΡΠΈΠ²() ΠΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΉΠΠ°ΡΡΠΈΠ² = ΠΠ°ΡΡΠΈΠ²(4, 12, 21, 100, 5) ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ' ΠΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ConstantArray ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ () ΠΠ°ΡΡΠΈΠ² ΠΊΠΎΠ½ΡΡΠ°Π½Ρ MsgBox(3) End Sub
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²
ΠΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ VBA. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΡΡΠ³ΠΎΠΌΡ.
Sub CopyArray() Dim Arr1 (ΠΎΡ 1 Π΄ΠΎ 100) As Long Dim Arr2 (ΠΎΡ 1 Π΄ΠΎ 100) As Long ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° 'Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²1 ΠΠ»Ρ i = ΠΎΡ 1 Π΄ΠΎ 100 ΠΡΡ1(Ρ) = Ρ ΠΠ°Π»Π΅Π΅ Ρ 'ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡΠΠ°ΡΡΠΈΠ²1 Π² ΠΠ°ΡΡΠΈΠ²2 ΠΠ»Ρ i = ΠΎΡ 1 Π΄ΠΎ 100 ΠΡΡ2(Ρ) = ΠΡΡ1(Ρ) ΠΠ°Π»Π΅Π΅ Ρ Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Arr2(74) ΠΠΎΠ½Π΅Ρ ΡΡΠ±
ΠΠ²ΡΠΎΠΌΠ°ΠΊΡΠΎΡ | ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° VBA | ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ!
Π’ΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ
ΠΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ VBA, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΡΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ 2D-ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎΡΡΠΈΡΠ΅ ΡΡΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅.
ΠΠ°ΡΡΠΈΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ VBA ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ². Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Variant Arrays. ΠΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠ°ΡΡΡ Π½Π° ΡΠ΅ΠΌΡ: ΠΠ°ΡΡΠΈΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ VBA.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² Access VBA
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π² Access VBA, ΠΊΠ°ΠΊ ΠΈ Π² Excel VBA. ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π΄Π°Π½Π½ΡΠΌΠΈ Access, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ RecordSet, Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ Range.
Sub RangeToArrayAccess() ΠΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΠ°Π»Π΅Π΅ Dim strNames() ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° ΠΠΈΠΌ ΠΈ ΠΏΠΎΠΊΠ° Dim iCount As Long Dim dbs ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Dim ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ dbs = CurrentDb Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° = dbs.OpenRecordset("tblClients", dbOpenDynaset) Π‘ ΠΏΠ΅ΡΠ²ΡΠΌ .MoveLast .MoveFirst iCount = .RecordCount ReDim strNames (ΠΎΡ 1 Π΄ΠΎ iCount) ΠΠ»Ρ i = 1 Π΄Π»Ρ iCount strNames(i) = rst.Fields("ΠΠΌΡΠΠ»ΠΈΠ΅Π½ΡΠ°") .MoveNext ΠΠ°Π»Π΅Π΅ Ρ ΠΠΎΠ½Π΅Ρ Ρ ΡΡΡ.ΠΠ°ΠΊΡΡΡΡ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ½Π°ΡΠ°Π»Π° = Π½ΠΈΡΠ΅Π³ΠΎ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ dbs = ΠΠΈΡΠ΅Π³ΠΎ ΠΠΎΠ½Π΅Ρ ΡΡΠ±
Β
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² VBA Π² Excel (ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ)
ΠΠ»Π°Π²Π½Π°Ρ / VBA / ΠΠ°ΡΡΠΈΠ²Ρ
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π² VBA?
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² VBA
Quick Notes
ΠΌΠ°ΡΡΠΈΠ² Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
ΠΠ΅ΡΠ½ΠΎΠ²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠ°ΡΠΈΠ°Π½Ρ Π²Π°ΡΠΈΠ°Π½Ρ Π±Π°Π·Ρ 1
ΠΠΎΠΈΡΠΊ
0004
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ VBA, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π°Ρ VBA, ΠΈ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π² VBA?
Π VBA ΠΌΠ°ΡΡΠΈΠ² β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ»ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ ΡΠ²ΠΈΠ΄Π°Π½ΠΈΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠΌ ΠΈ ΠΎΡΠ΅Π½ΠΊΠ°ΠΌΠΈ ΡΡΠ°ΡΠ΅Π³ΠΎΡΡ.
ΠΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΠΊΠ°, Π½ΠΎ ΠΈ Π΄Π»Ρ ΡΠΎΡΠ΅Π½. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°), ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ (ΠΈΠ½Π΄Π΅ΠΊΡ).
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π½Π° Π²ΠΎΡΡΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ.
ΠΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΠΎ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ .
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² VBA
ΠΠ°ΠΊ Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» Π²ΡΡΠ΅, ΠΌΠ°ΡΡΠΈΠ² β ΡΡΠΎ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° (Dim, Private, Public ΠΈ Static). Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡ ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π¨Π°Π³ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
- Π‘Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Β«DimΒ», Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ.
- ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , VBA Π½Π°Π·Π½Π°ΡΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
- Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄
Sub vba_array_example()
Dim StudentNames(10) ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ°
StudentNames(0) = "ΠΠ΅ΠΉΠ»ΠΎΠ½"
StudentNames(1) = "ΠΠΎΡΡΠΎΠ½"
StudentNames(2) = "Π ΡΠ΄ΠΎΠ»ΡΡ"
StudentNames(3) = "ΠΠΆΠΎΡΠ΄ΠΆΠΈΠ½"
StudentNames(4) = "ΠΠΈΠ»Π»ΠΈ"
StudentNames(5) = "ΠΠ½ΠΈΠ΄"
StudentNames(6) = "ΠΠ΅Π½Π΅Π²ΡΠ΅Π²Π°"
StudentNames(7) = "ΠΠΆΡΠ΄ΠΈ"
StudentNames(8) = "ΠΠ°Π΄Π°Π»ΠΈΠ½"
ΠΠΌΠ΅Π½Π° ΡΡΡΠ΄Π΅Π½ΡΠΎΠ²(9) = "ΠΠ»ΡΠΎΠ½"
End Sub
ΠΡΠ°ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ
- Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Dim, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄ΠΎ 10 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ 10 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΡ 0 Π΄ΠΎ 9.
ΠΠ°ΡΡΠΈΠ² Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ
ΠΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , VBA Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°.
ΠΡΠ°ΠΊ, ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π»ΡΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠ°ΠΊ Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΡΠ°Π½Π΅Π΅, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ Π²Ρ Π²Π²Π΅Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΉΠΊΡ A1, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8 ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°. .
Use Option Base 1
Π― ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ Π½Π°Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ Π½ΡΠ»Ρ, Π° Π½Π΅ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ?
Π§ΡΠΎ ΠΆ, ΡΡΠΎ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠΎΠ³Π΄Π° Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°Π»Π° ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ², Π² VBA Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° is, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π»ΡΡ Ρ 1. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π½Π°ΡΠ°Π»Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠΎΠΈΡΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
Sub vba_array_search()
'Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ _
ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
Dim myArray(10) ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
Dim i ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
Dim varUserNumber ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ
Dim strMsg ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ°
'ΠΡΠ° ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ 10 ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΈΡΠ΅Π» ΠΊ _
ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² _
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΊΠ½ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅.
ΠΠ»Ρ i = ΠΎΡ 1 Π΄ΠΎ 10
ΠΌΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² (i) = Int (Rnd * 10)
Debug.Print myArray(i)
ΠΠ°Π»Π΅Π΅ Ρ
'ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°ΠΉΡΠΈ.
ΠΠ΅ΡΠ»Ρ:
varUserNumber = ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° _
("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ 10 Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°:", _
Β«ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΎΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°Β»)
'ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ IF, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ _
Π²Π²Π΅Π»ΠΈ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°.
ΠΡΠ»ΠΈ varUserNumber = "" Π’ΠΎΠ³Π΄Π° ΠΠΎΠ½Π΅Ρ
ΠΡΠ»ΠΈ Π½Π΅ IsNumeric (varUserNumber), ΡΠΎ GoTo Loopback
ΠΡΠ»ΠΈ varUserNumber < 1 ΠΈΠ»ΠΈ varUserNumber > 10, ΡΠΎ GoTo Loopback
'ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.
strMsg = "ΠΠ°ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, " & varUserNumber & _
", Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅."
'ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ _
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Π²Π²Π΅Π»ΠΈ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°.
ΠΠ»Ρ i = 1 To UBound (myArray)
ΠΡΠ»ΠΈ myArray(i) = varUserNumber Π’ΠΎΠ³Π΄Π°
strMsg = "ΠΠ°ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, " & varUserNumber & _
", Π±ΡΠ» Π½Π°ΠΉΠ΄Π΅Π½ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ " & i & " Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.