Olet tällä hetkellä offline-tilassa. Internet-yhteyden muodostamista uudelleen odotetaan

Solujen tai alueiden valitseminen Visual Basic -toimintosarjojen avulla Excelissä

Office 2003:n tuki on päättynyt

Microsoft lopetti Office 2003:n tuen 8.4.2014. Tämä muutos on vaikuttanut ohjelmistopäivityksiin ja suojausasetuksiin. Lue lisätietoja muutoksen vaikutuksesta ja suojauksen varmistamisesta.

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").ActivateActiveSheet.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").ActivateActiveSheet.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").ActivateActiveSheet.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").ActivateRange("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").ActivateRange("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").ActivateActiveSheet.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").SelectSelection.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").SelectSelection.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).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select				
    -or-				
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.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)
OfficeKBHowTo howto contiguous how to discontiguous non-contiguous nonadjacent non-adjacent  XL2003 XL2007 XL2010
Huomautus Tämä on niin sanottu nopeasti julkaistava (”fast publish”) artikkeli, joka on laadittu suoraan Microsoftin tukiorganisaatiossa. Tässä olevat tiedot toimitetaan sellaisenaan vastauksena esiin tulleisiin ongelmiin. Koska aineisto on tuotu saataville nopeasti, se saattaa sisältää painovirheitä ja tietoja saatetaan muokata milloin tahansa ilman erillistä ilmoitusta. Lue muut huomioon otettavat seikat käyttöehdoista.
Ominaisuudet

Artikkelin tunnus: 291308 – Viimeisin tarkistus: 01/08/2014 16:54:00 – Versio: 1.0

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

  • kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Palaute