Samenvatting
Dit artikel bevat voorbeeldprocedures van Microsoft Visual Basic for Applications die u kunt gebruiken om met verschillende typen matrices te werken.
Meer informatie
Microsoft biedt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal die wordt gedemonstreerd en met de hulpprogramma's die worden gebruikt om procedures te maken en fouten op te sporen. Ondersteuningstechnici van Microsoft kunnen helpen bij het uitleggen van de functionaliteit van een bepaalde procedure, maar ze zullen deze voorbeelden niet wijzigen om extra functionaliteit te bieden of procedures te maken die voldoen aan uw specifieke vereisten. OPMERKING: In Visual Basic for Applications-procedures zijn de woorden na de apostrof (') opmerkingen.
Een matrix vullen en deze vervolgens naar een werkblad kopiëren
-
Open een nieuwe werkmap en voeg een Visual Basic-moduleblad in.
-
Typ de volgende code op het moduleblad.
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
-
Selecteer Blad1.
-
Wijs in het menu Extra de optie Macro aan en klik vervolgens op Macro's.
-
Klik in het dialoogvenster Macro op Sheet_Fill_Array en klik vervolgens op Uitvoeren.
Waarden uit een werkblad nemen en de matrix invullen
-
Typ waarden op Blad1 in cellen A1:A10.
-
Typ de volgende code op een Visual Basic-moduleblad:
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
-
Selecteer Blad1.
-
Wijs in het menu Extra de optie Macro aan en klik vervolgens op Macro's.
-
Klik in het dialoogvenster Macro op from_sheet_make_array en klik vervolgens op Uitvoeren.
Een matrix doorgeven en ontvangen
-
Typ de volgende code op een moduleblad:
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
-
Selecteer Blad1 en markeer het bereik A1:A10.
-
Wijs in het menu Extra de optie Macro aan en klik vervolgens op Macro's.
-
Klik in het dialoogvenster Macro op pass_array en klik vervolgens op Uitvoeren.
Twee matrices vergelijken
-
Maak twee benoemde bereiken op Blad1. Noem het ene bereik1 en het andere bereik2.
Markeer bijvoorbeeld het celbereik A1:A10 en noem het bereik1; markeer het celbereik B1:B10 en noem het bereik2. -
Typ de volgende code op het moduleblad.
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
-
Selecteer Blad2.
-
Wijs in het menu Extra de optie Macro aan en klik vervolgens op Macro.
-
Klik in het dialoogvenster Macro op compare_two_array en klik vervolgens op Uitvoeren.
U ziet één berichtvak voor elke vergelijking.
Een dynamische matrix vullen
-
Typ de volgende code op een moduleblad:
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
-
Wijs in het menu Extra de optie Macro aan en klik vervolgens op Macro's.
-
Klik in het dialoogvenster Macro op fill_array en klik vervolgens op Uitvoeren.
OPMERKING: als u de variabele 'number_of_elements' wijzigt, wordt de grootte van de matrix bepaald.