Hvis du Microsoft Excel 2000-versjonen av denne artikkelen, kan du se 213798.

Hvis du Microsoft Excel 98 og tidligere versjoner av Excel av denne artikkelen, kan du se 149689.

Sammendrag

Denne artikkelen inneholder eksempelprosedyrer for Microsoft Visual Basic for Applications som du kan bruke til å arbeide med flere typer matriser.

Mer informasjon

Microsoft gir bare eksempler på programmering for illustrasjon, uten garanti, uttrykt eller underforstått. Dette omfatter, men er ikke begrenset til, underforståtte garantier om kjøpbarhet eller egnethet for et bestemt formål. Denne artikkelen antar at du er kjent med programmeringsspråket som demonstreres, og med verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan bidra til å forklare funksjonaliteten til en bestemt prosedyre, men de vil ikke endre disse eksemplene for å gi ekstra funksjonalitet eller konstruere prosedyrer for å oppfylle dine spesifikke krav. MERK: I Visual Basic for Applications er ordene etter apostrofen (') kommentarer.

Fylle en matrise og deretter kopiere den til et regneark

  1. Åpne en ny arbeidsbok, og sett inn et Visual Basic modulark.

  2. Skriv inn 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
  3. Velg Ark1.

  4. Pek på Makro på Verktøy-menyen, og klikk deretter Makroer.

  5. I makrodialogboksen klikker du Sheet_Fill_Array, og deretter klikker du Kjør.

Slik tar du verdier fra et regneark og fyller ut matrisen

  1. Skriv inn verdier på Ark1 i cellene A1:A10.

  2. Skriv inn Visual Basic på et 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
  3. Velg Ark1.

  4. Pek på Makro på Verktøy-menyen, og klikk deretter Makroer.

  5. I makrodialogboksen klikker du from_sheet_make_array, og deretter klikker du Kjør.

Sende og motta en matrise

  1. Skriv inn 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
  2. Velg Ark1, og merk området A1:A10.

  3. Pek på Makro på Verktøy-menyen, og klikk deretter Makroer.

  4. I makrodialogboksen klikker du pass_array, og deretter klikker du Kjør.

Slik sammenligner du to matriser

  1. Opprett to navngitte områder på Ark1. Gi navn til ett område1 og det andre området2.

    Merk for eksempel celleområdet A1:A10, og gi det et navn til området1. uthev celleområdet B1:B10, og gi det et navn til område2.

  2. Skriv inn 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
  3. Velg Ark2.

  4. Pek på Makro på Verktøy-menyen, og klikk deretter Makro.

  5. I makrodialogboksen klikker du compare_two_array, og deretter klikker du Kjør.

    Du ser én meldingsboks for hver sammenligning.

Slik fyller du ut en dynamisk matrise

  1. Skriv inn 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
  2. Pek på Makro på Verktøy-menyen, og klikk deretter Makroer.

  3. I makrodialogboksen klikker du fill_array, og deretter klikker du Kjør.

OBS! Hvis du endrer variabelen number_of_elements, bestemmes størrelsen på matrisen.

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?

Takk for tilbakemeldingen!

×