Suvestinė
Šiame straipsnyje pateikiami "Microsoft Visual Basic for Applications" procedūrų pavyzdžiai, kuriuos galite naudoti dirbdami su kelių tipų masyvais.
Daugiau informacijos
"Microsoft" pateikia programavimo pavyzdžius tik iliustracijoms, be išreikštos arba numanomos garantijos. Tai apima, bet neapsiriboja, numanomas garantijas dėl tinkamumo parduoti ar tinkamumo konkrečiam tikslui. Šiame straipsnyje daroma prielaida, kad esate susipažinę su programavimo kalba, kuri yra pademonstruojama ir su įrankiais, kurie naudojami kurti ir derinti procedūras. "Microsoft" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcijas, tačiau jie nekeis šių pavyzdžių, kad galėtų teikti papildomas funkcijas arba kurti procedūras pagal jūsų konkrečius reikalavimus. PASTABA: "Visual Basic for Applications" procedūrose žodžiai po apostrofo (') yra komentarai.
Masyvo užpildymas ir kopijavimas į darbalapį
-
Atidarykite naują darbaknygę ir įterpkite Visual Basic modulio lapą.
-
Modulio lape įveskite šį kodą.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Pasirinkite Lapas1.
-
Meniu Įrankiai nukreipkite žymiklį į Makrokomanda, tada spustelėkite Makrokomandos.
-
Dialogo lange Makrokomanda spustelėkite Sheet_Fill_Array, tada spustelėkite Vykdyti.
Reikšmių įrašymas iš darbalapio ir masyvo užpildymas
-
Langeliuose A1:A10 įveskite reikšmes lape Lapas1.
-
"Visual Basic" modulio lape įveskite šį kodą:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Pasirinkite Lapas1.
-
Meniu Įrankiai nukreipkite žymiklį į Makrokomanda, tada spustelėkite Makrokomandos.
-
Dialogo lange Makrokomanda spustelėkite from_sheet_make_array, tada spustelėkite Vykdyti.
Masyvo perdavimas ir gavimas
-
Modulio lape įveskite šį kodą:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Pasirinkite Lapas1 ir pažymėkite diapazoną A1:A10.
-
Meniu Įrankiai nukreipkite žymiklį į Makrokomanda, tada spustelėkite Makrokomandos.
-
Dialogo lange Makrokomanda spustelėkite pass_array, tada spustelėkite Vykdyti.
Dviejų masyvų palyginimas
-
Lape1 sukurkite du pavadintus diapazonus. Pavadinkite vieną diapazoną1 ir kitą diapazoną2.
Pavyzdžiui, pažymėkite langelių diapazoną A1:A10 ir pavadinkite jį1; pažymėkite langelių diapazoną B1:B10 ir pavadinkite jį2. -
Modulio lape įveskite šį kodą.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Pasirinkite Lapas2.
-
Meniu Įrankiai nukreipkite žymiklį į Makrokomanda, tada spustelėkite Makrokomanda.
-
Dialogo lange Makrokomanda spustelėkite compare_two_array, tada spustelėkite Vykdyti.
Matysite vieną pranešimo lauką kiekvienam palyginimui.
Dinaminio masyvo užpildymas
-
Modulio lape įveskite šį kodą:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
Meniu Įrankiai nukreipkite žymiklį į Makrokomanda, tada spustelėkite Makrokomandos.
-
Dialogo lange Makrokomanda spustelėkite fill_array, tada spustelėkite Vykdyti.
PASTABA: keičiant kintamąjį "number_of_elements" bus nustatytas masyvo dydis.