Yhteenveto
Tässä artikkelissa on esimerkki Microsoft Visual Basic for Applications toimintosyistä, joita voit käyttää useiden erityyppisten matriisien kanssa.
Lisätietoja
Microsoft tarjoaa ohjelmointiesimerkkejä vain havainnollistamista varten ilman ilmoitettua tai oletettua takuuta. Tähän sisältyvät muun muassa epäsuorat takuut soveltuvuudesta kaupankäynnin kohteeksi tai soveltuvuudesta tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että tunnet ohjelmoinnin kielen, jota esitellään, sekä työkalut, joita käytetään toimintosarjojen luomiseen ja virheenkorjaukseen. Microsoftin tukihenkilöt voivat auttaa selittämään tietyn menettelyn toiminnallisuuden, mutta he eivät muokkaa näitä esimerkkejä niin, että ne tarjoaisivat lisätoimintoja tai laativat menetelmiä erityisvaatimusten täyttämiseksi. HUOMAUTUS: Visual Basic for Applications toimintosyistä heittomerkin (') jälkeiset sanat ovat kommentteja.
Matriisin täyttäminen ja kopioiminen laskentataulukkoon
-
Avaa uusi työkirja ja lisää Visual Basic -moduulitaulukko.
-
Kirjoita seuraava koodi moduulitaulukkoon.
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
-
Valitse Taul1.
-
Valitse Työkalut-valikossa Makro ja valitse sitten Makrot.
-
Valitse Makro-valintaikkunassa Sheet_Fill_Array ja valitse sitten Suorita.
Arvojen ottaminen laskentataulukosta ja matriisin täyttäminen
-
Kirjoita arvot Taul1 soluihin A1:A10.
-
Kirjoita Visual Basic -moduulitaulukkoon seuraava koodi:
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
-
Valitse Taul1.
-
Valitse Työkalut-valikossa Makro ja valitse sitten Makrot.
-
Valitse Makro-valintaikkunassa from_sheet_make_array ja valitse sitten Suorita.
Matriisin lähettäminen ja vastaanottaminen
-
Kirjoita moduulitaulukkoon seuraava koodi:
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
-
Valitse Taulukko1 ja korosta alue A1:A10.
-
Valitse Työkalut-valikossa Makro ja valitse sitten Makrot.
-
Valitse Makro-valintaikkunassa pass_array ja valitse sitten Suorita.
Kahden matriisin vertailu
-
Luo kaksi nimettyä aluetta Taul1:ssä. Nimeä yksi alue1 ja toinen alue2.
Voit esimerkiksi korostaa solualueen A1:A10 ja nimetä sen alueeksi1; korosta solualue B1:B10 ja nimeä alue2. -
Kirjoita seuraava koodi moduulitaulukkoon.
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
-
Valitse Taul2.
-
Valitse Työkalut-valikossa Makro ja valitse sitten Makro.
-
Valitse Makro-valintaikkunassa compare_two_array ja valitse sitten Suorita.
Näet yhden sanomaruudun jokaista vertailua varten.
Dynaamisen matriisin täyttäminen
-
Kirjoita moduulitaulukkoon seuraava koodi:
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
-
Valitse Työkalut-valikossa Makro ja valitse sitten Makrot.
-
Valitse Makro-valintaikkunassa fill_array ja valitse sitten Suorita.
HUOMAUTUS: Muuttujan "number_of_elements" muuttaminen määrittää matriisin koon.