Kopsavilkums
Šajā rakstā iekļauti Microsoft Visual Basic for Applications procedūru paraugi, kurus varat izmantot darbam ar vairākiem masīvu tipiem.
Papildinformācija
Microsoft nodrošina programmēšanas piemērus tikai ilustrācijai, bet nekādas garantijas nav izteiktas vai netiešas. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. Šajā rakstā tiek pieņemts, ka pārzināt programmēšanas valodu, kas tiek demonstrēta, un rīkus, kas tiek izmantoti, lai izveidotu un atkļūdotu procedūras. Microsoft atbalsta inženieri var palīdzēt izskaidrot konkrētas procedūras funkcionalitāti, bet tie nemodificēs šos piemērus, lai nodrošinātu papildu funkcionalitāti vai uzbūves procedūras, kas atbilst jūsu konkrētajām vajadzībām. PIEZĪME. Visual Basic for Applications procedūrās pēc apostrofa (') ir komentāri.
Lai aizpildītu masīvu un pēc tam to kopētu darblapā
-
Atveriet jaunu darbgrāmatu un ievietojiet Visual Basic moduļa lapu.
-
Moduļa lapā ierakstiet tālāk norādīto kodu.
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
-
Atlasiet Lapa1.
-
Izvēlnē Rīki norādiet uz Makro un pēc tam noklikšķiniet uz Makro.
-
Dialoglodziņā Makro noklikšķiniet uz Makro un Sheet_Fill_Array tam uz Izpildīt.
Vērtību aizpildīšana darblapā un masīva aizpildīšana
-
Šūnās A1:A10 ierakstiet vērtības Lapā1.
-
Visual Basic moduļa lapā ierakstiet šādu kodu:
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
-
Atlasiet Lapa1.
-
Izvēlnē Rīki norādiet uz Makro un pēc tam noklikšķiniet uz Makro.
-
Dialoglodziņā Makro noklikšķiniet uz Makro un from_sheet_make_array tam uz Izpildīt.
Lai nodotu un saņemtu masīvu
-
Moduļa lapā ierakstiet šādu kodu:
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
-
Atlasiet Lapa1 un iezīmējiet diapazonu A1:A10.
-
Izvēlnē Rīki norādiet uz Makro un pēc tam noklikšķiniet uz Makro.
-
Dialoglodziņā Makro noklikšķiniet uz Makro un pass_array tam uz Izpildīt.
Divu masīvu salīdzināšana
-
Lapā Lapa1 izveidojiet divus diapazonus ar nosaukumiem. Nosaukiet vienu diapazonu1 un otru diapazonu2.
Piemēram, iezīmējiet šūnu diapazonu A1:A10 un nosaukiet to par diapazonu1; iezīmējiet šūnu diapazonu B1:B10 un nosaukiet to par diapazonu2. -
Moduļa lapā ierakstiet tālāk norādīto kodu.
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
-
Atlasiet Lapa2.
-
Izvēlnē Rīki norādiet uz Makro un pēc tam noklikšķiniet uz Makro.
-
Dialoglodziņā Makro noklikšķiniet uz Makro un compare_two_array tam uz Izpildīt.
Katram salīdzinājumam tiks rādīts viens ziņojuma lodziņš.
Lai aizpildītu dinamisko masīvu
-
Moduļa lapā ierakstiet šādu kodu:
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
-
Izvēlnē Rīki norādiet uz Makro un pēc tam noklikšķiniet uz Makro.
-
Dialoglodziņā Makro noklikšķiniet uz Makro un fill_array tam uz Izpildīt.
PIEZĪME. Mainīgā "number_of_elements" maiņa nosaka masīva lielumu.