Oversigt
Denne artikel indeholder eksempler på Microsoft Visual Basic for Applications procedurer, du kan bruge til at arbejde med flere typer matrixer.
Flere oplysninger
Microsoft leverer kun programmeringseksempler som illustration uden garanti, hverken udtrykt eller underforstået. Dette omfatter, men er ikke begrænset til, stiltiende garantier for salgbarhed eller egnethed til et bestemt formål. I denne artikel antages det, at du er bekendt med det programmeringssprog, der demonstreres, og med de værktøjer, der bruges til at oprette og fejlfinde procedurer. Microsofts supportteknikere kan hjælpe med at forklare funktionaliteten af en bestemt procedure, men de vil ikke ændre disse eksempler for at give ekstra funktionalitet eller konstruere procedurer, der opfylder dine specifikke krav. BEMÆRK! I Visual Basic for Applications procedurer er ordene efter apostrof (') kommentarer.
Sådan udfylder du en matrix og derefter kopierer den til et regneark
-
Åbn en ny projektmappe, og indsæt et Visual Basic-modulark.
-
Skriv følgende kode på modularket.
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
-
Vælg Ark1.
-
Peg på Makro i menuen Funktioner, og klik derefter på Makroer.
-
Klik på Sheet_Fill_Array i dialogboksen Makro, og klik derefter på Kør.
Sådan henter du værdier fra et regneark og udfylder matrixen
-
Skriv værdier på Ark1 i cellerne A1:A10.
-
Skriv følgende kode på et Visual Basic-modulark:
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
-
Vælg Ark1.
-
Peg på Makro i menuen Funktioner, og klik derefter på Makroer.
-
Klik på from_sheet_make_array i dialogboksen Makro, og klik derefter på Kør.
Sådan overføres og modtages en matrix
-
Skriv følgende kode på et modulark:
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
-
Vælg Ark1, og fremhæv området A1:A10.
-
Peg på Makro i menuen Funktioner, og klik derefter på Makroer.
-
Klik på pass_array i dialogboksen Makro, og klik derefter på Kør.
Sådan sammenlignes to matrixer
-
Opret to navngivne områder på Ark1. Navngiv det ene område1 og det andet område2.
Fremhæv f.eks. celleområdet A1:A10, og navngiv det område1; fremhæv celleområdet B1:B10, og navngiv det område2. -
Skriv følgende kode på modularket.
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
-
Vælg Ark2.
-
Peg på Makro i menuen Funktioner, og klik derefter på Makro.
-
Klik på compare_two_array i dialogboksen Makro, og klik derefter på Kør.
Du får vist ét meddelelsesfelt til hver sammenligning.
Sådan udfyldes en dynamisk matrix
-
Skriv følgende kode på et modulark:
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
-
Peg på Makro i menuen Funktioner, og klik derefter på Makroer.
-
Klik på fill_array i dialogboksen Makro, og klik derefter på Kør.
BEMÆRK! Hvis du ændrer variablen "number_of_elements", bestemmer det størrelsen på matrixen.