Solujen tai alueiden valitseminen Visual Basic -toimintosarjojen avulla Excelissä

Enemmän tietoa

Microsoftin tarjoamat ohjelmointiesimerkit ovat vain ohjeellisia. Niille ei anneta mitään nimenomaisesti ilmaistua tai oletettua takuuta, mukaan lukien oletettu takuu tuotteen soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta johonkin tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että olet perehtynyt käytettyyn ohjelmointikieleen sekä työkaluihin, joita käytetään prosessien luomisessa sekä virheiden jäljittämisessä ja korjaamisessa. Microsoftin tukipalvelun asiantuntijat voivat auttaa tietyn toiminnon toteuttamisessa, mutta he eivät muokkaa näitä esimerkkejä niiden kuvaamien toimintojen parantamiseksi eivätkä esitä ratkaisuja erityistarpeita varten. Tässä artikkelissa olevissa esimerkeissä käytetään seuraavassa taulukossa lueteltuja Visual Basic -menetelmiä.

Method Arguments
------------------------------------------
Activate none
Cells rowIndex, columnIndex
Application.Goto reference, scroll
Offset rowOffset, columnOffset
Range cell1
cell1, cell2
Resize rowSize, columnSize
Select none
Sheets index (or sheetName)
Workbooks index (or bookName)
End direction
CurrentRegion none
Tässä artikkelissa olevat esimerkit käyttävät seuraavan taulukon ominaisuuksia.

Property Use
---------------------------------------------------------------------
ActiveSheet to specify the active sheet
ActiveWorkbook to specify the active workbook
Columns.Count to count the number of columns in the specified item
Rows.Count to count the number of rows in the specified item
Selection to refer to the currently selected range

1: Aktiivisen laskentataulukon solun valitseminen

Jos haluat valita solun D5 aktiivisessa laskentataulukossa, voit käyttää jompaakumpaa seuraavista esimerkeistä:
ActiveSheet.Cells(5, 4).Select
TAI
ActiveSheet.Range("D5").Select

2: Saman työkirjan toisen laskentataulukon solun valitseminen

Jos haluat valita solun E5 saman työkirjan toisessa laskentataulukossa, voit käyttää jompaakumpaa seuraavista esimerkeistä:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)

-or-
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
Voit myös aktivoida laskentataulukon ja valita solun käyttämällä edellä olevaa tapaa 1:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select

3: Eri työkirjan laskentataulukon solun valitseminen

Jos haluat valita solun F7 eri työkirjan laskentataulukossa, voit käyttää jompaakumpaa seuraavista esimerkeistä:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
TAI
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
Voit myös aktivoida laskentataulukon ja valita solun käyttämällä edellä olevaa tapaa 1:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select

4: Aktiivisen laskentataulukon solualueen valitseminen

Jos haluat valita alueen C2:D10 aktiivisessa laskentataulukossa, voit käyttää jotakin seuraavista esimerkeistä:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select

5: Saman työkirjan toisen laskentataulukon solualueen valitseminen

Jos haluat valita alueen D3:E11 saman työkirjan toisessa laskentataulukossa, voit käyttää jompaakumpaa seuraavista esimerkeistä:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
Voit myös aktivoida laskentataulukon ja valita alueen käyttämällä edellä olevaa tapaa 4:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

6: Eri työkirjan laskentataulukon solualueen valitseminen

Jos haluat valita alueen E4:F12 eri työkirjan laskentataulukossa, voit käyttää jompaakumpaa seuraavista esimerkeistä:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
Voit myös aktivoida laskentataulukon ja valita alueen käyttämällä edellä olevaa tapaa 4:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

7: Aktiivisen laskentataulukon nimetyn alueen valitseminen

Jos haluat valita nimetyn alueen nimeltä Test aktiivisessa laskentataulukossa, voit käyttää jompaakumpaa seuraavista esimerkeistä:
Range("Test").Select
Application.Goto "Test"

8: Saman työkirjan toisen laskentataulukon nimetyn alueen valitseminen

Jos haluat valita nimetyn alueen nimeltä Test saman työkirjan toisessa laskentataulukossa, voit käyttää seuraavaa esimerkkiä:
Application.Goto Sheets("Sheet1").Range("Test")
Voit myös aktivoida laskentataulukon ja valita nimetyn alueen käyttämällä edellä olevaa tapaa 7:
Sheets("Sheet1").Activate
Range("Test").Select

9: Eri työkirjan laskentataulukon nimetyn alueen valitseminen

Jos haluat valita nimetyn alueen nimeltä Test eri työkirjan laskentataulukossa, voit käyttää seuraavaa esimerkkiä:
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
Voit myös aktivoida laskentataulukon ja valita nimetyn alueen käyttämällä edellä olevaa tapaa 7:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select

10: Solun valitseminen suhteessa aktiiviseen soluun

Jos haluat valita solun, joka on viisi riviä aktiivisen solun alapuolella ja neljä saraketta sen vasemmalla puolella, voit käyttää seuraavaa esimerkkiä:
ActiveCell.Offset(5, -4).Select
Jos haluat valita solun, joka on kaksi riviä aktiivisen solun yläpuolella ja kolme saraketta sen oikealla puolella, voit käyttää seuraavaa esimerkkiä:
ActiveCell.Offset(-2, 3).Select
Huomautus: jos yrität valita laskentataulukon ulkopuolella olevan solun, saatat saada virheilmoituksen. Edellä oleva ensimmäinen esimerkki palauttaa virheen, jos aktiivinen solu on sarakkeissa A–D, koska siirryttäessä neljä saraketta vasemmalle aktiivinen solu sijaitsee virheellisessä soluosoitteessa.

11: Solun valitseminen suhteessa toiseen (muuhun kuin aktiiviseen) soluun

Jos haluat valita solun, joka on viisi riviä solun C7 alapuolella ja neljä saraketta sen oikealla puolella, voit käyttää jompaakumpaa seuraavista esimerkeistä:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
ActiveSheet.Range("C7").Offset(5, 4).Select

12: Sellaisen solualueen valitseminen, joka on tietyn siirtymän päässä määritetystä alueesta

Jos haluat valita solualueen, jonka koko on sama kuin nimetyllä alueella nimeltä Test mutta joka on neljä riviä sen alapuolella ja kolme saraketta sen oikealla puolella, voit käyttää seuraavaa esimerkkiä:
ActiveSheet.Range("Test").Offset(4, 3).Select
Jos nimetty alue sijaitsee toisessa (muussa kuin aktiivisessa) laskentataulukossa, aktivoi kyseinen laskentataulukko ensin ja valitse alue sitten käyttämällä seuraavaa esimerkkiä:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select

13: Määritetyn alueen valitseminen ja valinnan koon muuttaminen

Jos haluat valita nimetyn alueen nimeltä Database ja laajentaa valintaa sitten viisi riviä, voit käyttää seuraavaa esimerkkiä:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
Selection.Columns.Count).Select

14: Määritetyn alueen valitseminen, siirtymän tekeminen siihen ja sen koon muuttaminen

Jos haluat valita alueen, joka on neljä riviä nimetyn alueen nimeltä Database alapuolella ja kolme saraketta sen oikealla puolella, ja sisällyttää siihen sitten kaksi riviä ja yhden sarakkeen nimettyä aluetta enemmän, voit käyttää seuraavaa esimerkkiä:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
Selection.Columns.Count + 1).Select

15: Kahden tai useamman määritetyn alueen yhdistelmän valitseminen

Jos haluat valita yhdistetyn alueen kahdesta nimetystä alueesta, joiden nimet ovat Test ja Sample, voit käyttää seuraavaa esimerkkiä:
Application.Union(Range("Test"), Range("Sample")).Select
Huomaa, että molempien alueiden on oltava samassa laskentataulukossa, jotta tämä esimerkki toimisi. Huomaa myös, että Union-mentelmä ei toimi laskentataulukoiden välillä. Esimerkiksi seuraava rivi toimii hyvin
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
mutta tämä rivi
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
palauttaa virhesanoman:
Luokan application menetelmä Union epäonnistui

16: Kahden tai useamman määritetyn alueen leikkauksen valitseminen

Jos haluat valita leikkauksen kahdesta nimetystä alueesta, joiden nimet ovat Test ja Sample, voit käyttää seuraavaa esimerkkiä:
Application.Intersect(Range("Test"), Range("Sample")).Select
Huomaa, että molempien alueiden on oltava samassa laskentataulukossa, jotta tämä esimerkki toimisi.



Tämän artikkelin esimerkit 17–21 viittaavat seuraaviin mallitietoihin. Kukin esimerkki ilmoittaa mallitietojen solualueen, joka valitaan.

A1: Name B1: Sales C1: Quantity
A2: a B2: $10 C2: 5
A3: b B3: C3: 10
A4: c B4: $10 C4: 5
A5: B5: C5:
A6: Total B6: $20 C6: 20

17: Peräkkäisiä tietoja sisältävän sarakkeen viimeisen solun valitseminen

Jos haluat valita peräkkäisiä tietoja sisältävän sarakkeen viimeisen solun, käytä seuraavaa esimerkkiä:
ActiveSheet.Range("a1").End(xlDown).Select
Kun tätä koodia käytetään mallitaulukossa, solu A4 valitaan.


18: Peräkkäisiä tietoja sisältävän sarakkeen alapuolella olevan tyhjän solun valitseminen

Jos haluat peräkkäisten solujen alueen alapuolella olevan solun, käytä seuraavaa esimerkkiä:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
Kun tätä koodia käytetään mallitaulukossa, solu A5 valitaan.


19: Sarakkeen peräkkäisten solujen alueen valitseminen kokonaan

Jos haluat valita sarakkeen peräkkäiset solut, käytä jotakin seuraavista esimerkeistä:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select

-or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
End(xlDown).Address).Select
Kun tätä koodia käytetään mallitaulukossa, solut A1–A4 valitaan.

20: Sarakkeen peräkkäisten solujen alueen valitseminen kokonaan

Jos haluat valita alueen soluja, jotka eivät ole peräkkäisiä, käytä jotakin seuraavista esimerkeistä:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select

-or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
End(xlUp).Address).Select
Kun tätä koodia käytetään mallitaulukossa, solut A1–A6 valitaan.

21: Nelikulmaisen solualueen valitseminen

Jos haluat valita solun ympärillä olevan nelikulmaisen solualueen, käytä CurrentRegion-menetelmää. CurrentRegion-menetelmän valitsema alue on minkä tahansa tyhien rivien ja sarakkeiden yhdistelmän ympäröimä alue. Seuraavassa on esimerkki CurrentRegion-menetelmän käyttämisestä:
ActiveSheet.Range("a1").CurrentRegion.Select
Tämä koodi valitsee solut A1–C4. Muita saman solualueen valitsemisen esimerkkejä on seuraavassa:
ActiveSheet.Range("a1", _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select

-or-
ActiveSheet.Range("a1:" & _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
Joissakin tilanteissa saatat haluta valita solut A1–C6. Tässä esimerkissä CurrentRegion-menetelmä ei toimi, koska rivi 5 on tyhjä. Seuraavat esimerkit valitsevat kaikki solut:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select

-or-
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
ActiveSheet.Cells(lastRow, lastCol).Address).Select

22. Eri pituisten muiden kuin yhtenäisten sarakkeiden valitseminen

Jos haluat valita useita muita kuin yhtenäisiä sarakkeita, jotka eivät ole yhtä pitkiä, käytä seuraavaa mallitaulukkoa ja esimerkkimakroa:

A1: 1 B1: 1 C1: 1 D1: 1
A2: 2 B2: 2 C2: 2 D2: 2
A3: 3 B3: 3 C3: 3 D3: 3
A4: B4: 4 C4: 4 D4: 4
A5: B5: 5 C5: 5 D5:
A6: B6: C6: 6 D6:
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
Kun tätä koodia käytetään mallitaulukossa, solut A1:A3 ja C1:C6 valitaan.

HUOMAUTUKSIA ESIMERKEISTÄ

  • ActiveSheet-ominaisuus voidaan yleensä jättää pois, koska se oletetaan, jos erityistä laskentataulukkoa ei nimetä. Esimerkiksi koodin
    ActiveSheet.Range("D5").Select
    sijaan voit käyttää koodia
    Range("D5").Select
  • Myös ActiveWorkbook-ominaisuus voidaan yleensä jättää pois. Ellei tiettyä työkirjaa nimetä, aktiivinen työkirja oletetaan.
  • Kun käytät Application.Goto-menetelmää, sinun on sisällytettävä aina myös Sheets-objekti, jos haluat käyttää kahta Cells-menetelmää Range-menetelmän sisällä, kun määritetty alue on toisessa (muussa kuin aktiivisessa) laskentataulukossa. Esimerkki:
    Application.Goto Sheets("Sheet1").Range( _
    Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
    Sheets("Sheet1").Cells(4, 5)))
  • Kysymysmerkkien sisällä olevien kohteiden (esimerkiksi nimetty alue "Test") sijaan voit myös käyttää muuttujaa, jonka arvo on tekstimerkkijono. Esimerkiksi koodin
    ActiveWorkbook.Sheets("Sheet1").Activate
    sijaan voit käyttää koodia
    ActiveWorkbook.Sheets(myVar).Activate
    jossa myVar-arvo on "Sheet1".

Suositukset


Saat lisätietoja tässä artikkelissa olevan mallikoodin käyttämisestä napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:

290140 Knowledge Base -artikkeleiden Office XP -ohjelmien mallikoodin suorittaminen (tämä artikkeli saattaa olla englanninkielinen)

Ominaisuudet

Artikkelin tunnus: 291308 – Viimeisin tarkistus: 8.1.2014 – Versio: 1

Microsoft Office Excel 2003, Microsoft Office Excel 2007, Microsoft Excel 2010

Palaute