Artikel-id: 291308 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Mer Information

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till med att förklara funktionen hos en viss procedur, men kan inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov. I exemplen i den här artikeln används Visual Basic-metoderna från följande tabell.
   Metod             Argument
   ------------------------------------------
   Activate           inget
   Cells              rowIndex, columnIndex
   Application.Goto   reference, scroll
   Offset             rowOffset, columnOffset
   Range              cell1
                      cell1, cell2
   Resize             rowSize, columnSize
   Select             inget
   Sheets             index (eller sheetName)
   Workbooks          index (eller bookName)
   End                direction
   CurrentRegion      inget
				
I exemplen i den här artikeln används egenskaperna i följande tabell.
   Egenskap         Används
   ---------------------------------------------------------------------
   ActiveSheet      för att ange det aktiva bladet
   ActiveWorkbook   för att ange den aktiva arbetsboken
   Columns.Count    för att räkna antalet kolumner i det angivna objektet
   Rows.Count       för att räkna antalet rader i det angivna objektet
   Selection        för att referera till det markerade området
				

1: Markera en cell i det aktiva kalkylbladet

Om du vill markera cell D5 i det aktiva kalkylbladet kan du använda något av följande exempel:
ActiveSheet.Cells(5, 4).Select
				
eller
ActiveSheet.Range("D5").Select
				

2: Markera en cell i ett annat kalkylblad i samma arbetsbok

Om du vill markera cell E6 i ett annat kalkylblad i samma arbetsbok kan du använda något av följande exempel:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
   eller
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
Du kan även aktivera kalkylbladet och sedan använda metod 1 ovan för att markera cellen:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3: Markera en cell i ett kalkylblad i en annan arbetsbok

Om du vill markera cell F7 i ett kalkylblad i en annan arbetsbok kan du använda något av följande exempel:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
eller
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
Du kan även aktivera kalkylbladet och sedan använda metod 1 ovan för att markera cellen:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4: Markera ett cellområde i det aktiva kalkylbladet

Om du vill markera området C2:D10 i det aktiva kalkylbladet kan du använda något av följande exempel:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5: Markera ett cellområde i ett annat kalkylblad i samma arbetsbok

Om du vill markera cellområdet D3:E11 i ett annat kalkylblad i samma arbetsbok kan du använda något av följande exempel:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
Du kan även aktivera kalkylbladet och sedan använda metod 4 ovan för att markera området:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6: Markera ett cellområde i ett kalkylblad i en annan arbetsbok

Om du vill markera området E4:F12 i ett kalkylblad i en annan arbetsbok kan du använda något av följande exempel:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
Du kan även aktivera kalkylbladet och sedan använda metod 4 ovan för att markera området:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7: Markera ett namngivet område i det aktiva kalkylbladet

Om du vill markera det namngivna området "Test" i det aktiva kalkylbladet kan du använda något av följande exempel:
Range("Test").Select
				
Application.Goto "Test"
				

8: Markera ett namngivet område i ett annat kalkylblad i samma arbetsbok

Om du vill markera det namngivna området "Test" i ett annat kalkylblad i samma arbetsbok kan du använda följande exempel:
Application.Goto Sheets("Sheet1").Range("Test")
				
Du kan även aktivera kalkylbladet och sedan använda metod 7 ovan för att markera det namngivna området:
Sheets("Sheet1").Activate
Range("Test").Select
				

9: Markera ett namngivet område i ett kalkylblad i en annan arbetsbok

Om du vill markera det namngivna området "Test" i ett kalkylblad i en annan arbetsbok kan du använda följande exempel:
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
Du kan även aktivera kalkylbladet och sedan använda metod 7 ovan för att markera det namngivna området:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10: Markera en cell i förhållande till den aktiva cellen

Om du vill markera en cell som är fem rader nedanför och fyra kolumner till vänster om den aktiva cellen, kan du använda följande exempel:
ActiveCell.Offset(5, -4).Select
				
Om du vill markera en cell som är två rader ovanför och tre kolumner till höger om den aktiva cellen, kan du använda följande exempel:
ActiveCell.Offset(-2, 3).Select
				
Obs! Om du försöker markera en cell som är "utanför kalkylbladet" visas ett felmeddelande. Det första exemplet ovan ger upphov till ett felmeddelande om den aktiva cellen finns i kolumn A till och med D, eftersom en förflyttning fyra kolumner till vänster gör att den aktiva cellen kommer att finnas på en ogiltig celladress.

11: Markera en cell i förhållande till en annan cell än den aktiva cellen

Om du vill markera en cell som är fem rader nedanför och fyra kolumner till höger om cell C7, kan du använda något av följande exempel:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12: Markera ett cellområde som är förskjutet från ett angivet område

Om du vill markera ett cellområde som är lika stort som det namngivna området "Test", men som är förskjutet fyra rader nedåt och tre kolumner till höger, kan du använda följande exempel:
ActiveSheet.Range("Test").Offset(4, 3).Select
				
Om det namngivna området finns i ett annat kalkylblad än det aktiva aktiverar du detta andra kalkylblad först, och markerar sedan området med hjälp av följande exempel:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13: Markera ett angivet område och ändra markeringens storlek

Om du vill markera det namngivna området "Database" och sedan utöka markeringen med fem rader kan du använda följande exempel:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				

14: Markera ett angivet område, förskjuta det och sedan ändra områdets storlek

Om du vill markera ett område fyra rader nedanför och tre kolumner till höger om det namngivna området "Database", samt inkludera två rader och en kolumn mer än det namngivna området, kan du använda följande exempel:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15: Markera unionen av två eller flera angivna områden

Om du vill markera unionen (det vill säga den sammanslagna ytan) av de två namngivna områdena "Test" och "Sample" kan du använda följande exempel:
Application.Union(Range("Test"), Range("Sample")).Select
				
Observera att båda områdena måste finnas i samma kalkylblad för att det här exemplet ska fungera. Observera även att Union-metoden inte fungerar mellan olika blad. Raden
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
fungerar till exempel bra, men
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
ger upphov till följande felmeddelande:
Union method of application class failed

16: Markera snittet av två eller flera angivna områden

Om du vill markera snittet av de två namngivna områdena "Test" och "Sample" kan du använda följande exempel:
Application.Intersect(Range("Test"), Range("Sample")).Select
				
Observera att båda områdena måste finnas i samma kalkylblad för att det här exemplet ska fungera.



I exempel 17?21 i den här artikeln hänvisas till följande exempeldata. I varje exempel anges cellområdet som markeras.
   A1: Namn    B1: Försäljning    C1: Kvantitet
   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: Markera den sista cellen i en kolumn med sammanhängande data

Om du vill markera den sista cellen i en sammanhängande kolumn kan du använda följande exempel:
ActiveSheet.Range("a1").End(xlDown).Select
				
När den här koden används på exempeltabellen markeras cellen A4.

18: Markera den tomma cellen längst ned i en kolumn med sammanhängande data

Om du vill markera cellen nedanför ett område med sammanhängande celler kan du använda följande exempel:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
När den här koden används på exempeltabellen markeras cellen A5.

19: Markera ett helt område med sammanhängande celler i en kolumn

Om du vill markera ett område med sammanhängande celler i en kolumn kan du använda följande exempel:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
   eller
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
När den här koden används på exempeltabellen markeras cellerna A1 till och med A4.

20: Markera ett helt område med icke sammanhängande celler i en kolumn

Om du vill markera ett område med celler som inte hänger samman kan du använda följande exempel:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
   eller
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
När den här koden används på exempeltabellen markeras cellerna A1 till och med A6.

21: Markera ett rektangulärt cellområde

Om du vill markera ett rektangulärt cellområde runt en cell använder du CurrentRegion-metoden. Området som markeras med CurrentRegion-metoden begränsas av en valfri kombination av tomma rader och tomma kolumner. Följande är ett exempel på hur du kan använda CurrentRegion-metoden:
ActiveSheet.Range("a1").CurrentRegion.Select
				
Den här koden markerar cellerna A1 till och med C4. Andra exempel på markering av samma cellområde anges nedan:
ActiveSheet.Range("a1", _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
				
   eller
				
ActiveSheet.Range("a1:" & _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
				
I vissa fall kan du vilja markera cellerna A1 till och med C6. I det här fallet fungerar inte CurrentRegion-metoden på grund av den tomma raden på rad 5. I följande exempel markeras samtliga celler:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
				
    eller
				
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. Markera flera icke sammanhängande kolumner av varierande längd

Om du vill markera flera icke sammanhängande kolumner av varierande längd kan du använda följande tabell- och makroexempel:
   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
				
När den här koden används på exempeltabellen markeras cellerna A1:A3 och C1:C6.

ANMÄRKNINGAR OM EXEMPLEN

  • ActiveSheet-egenskapen kan vanligen uteslutas, eftersom den är underförstådd om ett visst blad inte namnges. I stället för
    ActiveSheet.Range("D5").Select
    						
    kan du till exempel använda följande:
    Range("D5").Select
    						
  • ActiveWorkbook-egenskapen kan vanligen också uteslutas. Om inte en viss arbetsbok namnges underförstås den aktiva arbetsboken.
  • När du använder Application.Goto-metoden och vill använda de båda Cells-metoderna inom Range-metoden när det angivna området finns i ett annat kalkylblad än det aktiva, måste du inkludera Sheets-objektet varje gång. Ett exempel:
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • För alla objekt inom citattecken (till exempel det namngivna området "Test") kan du även använda en variabel vars värde är en textsträng. I stället för
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    kan du till exempel använda följande
    ActiveWorkbook.Sheets(myVar).Activate
    						
    där värdet av myVar är "Sheet1".

Referenser


Om du vill veta mer om hur du använder exempelkoden i den här artikeln klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
290140 Köra exempelkod för Office XP-program från artiklar i Knowledge Base
Obs! Det här är en "FAST PUBLISH?-artikel som skapats direkt inom Microsofts supportorganisation. Informationen i artikeln tillhandahålls i befintligt skick för att besvara framtida frågor. På grund av den snabba framtagningen kan materialet innehålla typografiska fel och kan utan förvarning när som helst komma att omarbetas. Se användarvillkoren för andra hänsynstaganden.

Egenskaper

Artikel-id: 291308 - Senaste granskning: den 9 mars 2014 - Revision: 2.0
Informationen i denna artikel gäller:
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
Nyckelord: 
kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308

Ge feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com