Sådan markeres celler/områder ved hjælp af Visual Basic-fremgangsmåder i Excel

Artikel-id: 291308 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

På denne side

Yderligere Information

Microsoft leverer kun programmeringseksempler som illustration ? uden nogen form for garanti, det være sig udtrykkelig eller underforstået. Dette omfatter, men er ikke begrænset til, det underforståede ansvar for salgbarhed eller egnethed til bestemte formål. Det forudsættes i denne artikel, at du kender ovennævnte programmeringssprog samt de værktøjer, der anvendes til at oprette og foretage fejlfinding i procedurer. Microsofts supportmedarbejdere kan hjælpe med at forklare funktionaliteten i en bestemt procedure, men vil ikke ændre eksemplerne, så de giver yderligere funktionalitet, eller oprette procedurer, der passer specielt til dine behov. Eksemplerne i denne artikel benytter de Visual Basic-metoder, der er angivet i tabellen nedenfor.
   Metode             Argumenter
   ------------------------------------------
   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
				
Eksemplerne i denne artikel benytter egenskaberne i tabellen nedenfor.
   Egenskab         Benyt
   ---------------------------------------------------------------------
   ActiveSheet      for at angive det aktive ark
   ActiveWorkbook   for at angive den aktive projektmappe
   Columns.Count    for at tælle antallet af kolonner i det angivne element
   Rows.Count       for at tælle antallet af rækker i det angivne element
   Selection        for at referere til det markerede område
				

1: Sådan markeres en celle i det aktive regneark

Hvis du vil markere celle D5 i det aktive regneark, kan du benytte et af følgende eksempler:
ActiveSheet.Cells(5, 4).Select
				
eller
ActiveSheet.Range("D5").Select
				

2: Sådan markeres en celle i et andet regneark i den samme projektmappe

Hvis du vil markere celle E6 i et andet regneark i den samme projektmappe, kan du benytte et af følgende eksempler:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
   eller
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
Eller du kan aktivere regnearket og derefter benytte metode 1 ovenfor til at markere cellen:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3: Sådan markeres en celle i et regneark i en anden projektmappe

Hvis du vil markere celle F7 i et regneark i en anden projektmappe, kan du benytte et af følgende eksempler:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
eller
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
Eller du kan aktivere regnearket og derefter benytte metode 1 ovenfor til at markere cellen:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4: Sådan markeres et celleområde i det aktive regneark

Hvis du vil markere området C2:D10 i det aktive regneark, kan du benytte et af følgende eksempler:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5: Sådan markeres et celleområde i et andet regneark i den samme projektmappe

Hvis du vil markere området D3:E11 i et andet regneark i den samme projektmappe, kan du benytte et af følgende eksempler:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
Eller du kan aktivere regnearket og derefter benytte metode 4 ovenfor til at markere området:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6: Sådan markeres et celleområde i et regneark i en anden projektmappe

Hvis du vil markere området E4:F12 i et regneark i en anden projektmappe, kan du benytte et af følgende eksempler:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
Eller du kan aktivere regnearket og derefter benytte metode 4 ovenfor til at markere området:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7: Sådan markeres et navngivet området i det aktive regneark

Hvis du vil markere det navngivne område "Test" i det aktive regneark, kan du benytte et af følgende eksempler:
Range("Test").Select
				
Application.Goto "Test"
				

8: Sådan markeres et navngivet område i et andet regneark i den samme projektmappe

Hvis du vil markere det navngivne område "Test" i et andet regneark i den samme projektmappe, kan du benytte følgende eksempel:
Application.Goto Sheets("Sheet1").Range("Test")
				
Eller du kan aktivere regnearket og derefter benytte metode 7 ovenfor til at markere det navngivne område:
Sheets("Sheet1").Activate
Range("Test").Select
				

9: Sådan markeres et navngivet område i et regneark i en anden projektmappe

Hvis du vil markere det navngivne område "Test" i et regneark i en anden projektmappe, kan du benytte følgende eksempel:
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
Eller du kan aktivere regnearket og derefter benytte metode 7 ovenfor til at markere det navngivne område:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10: Sådan markeres en celle i forhold til den aktive celle

Hvis du vil markere en celle, der er placeret fem rækker under og fire kolonner til venstre for den aktive celle, kan du benytte følgende eksempel:
ActiveCell.Offset(5, -4).Select
				
Hvis du vil markere en celle, der er placeret to rækker over og tre kolonner til højre for den aktive celle, kan du benytte følgende eksempel:
ActiveCell.Offset(-2, 3).Select
				
Bemærk! Der vil opstå en fejl, hvis du forsøger at markere en celle, der er "ligger uden for regnearket". Det første eksempel, der er vist ovenfor, vil returnere en fejl, hvis den aktive celle findes i kolonnerne A til og med D, fordi den aktive celle flyttes til en ugyldig celleadresse, hvis du flytter fire kolonner til venstre.

11: Sådan markeres en celle i forhold til en anden celle (ikke den aktive celle)

Hvis du vil markere en celle, der er placeret fem rækker under og fire kolonner til højre for celle C7, kan du benytte et af følgende eksempler:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12: Sådan markeres et celleområde, der er forskudt i forhold til et angivet område

Hvis du vil markere et celleområde, der har samme størrelse som det navngivne område "Test", men som er forskudt fire rækker ned og tre kolonner til højre, kan du benytte følgende eksempel:
ActiveSheet.Range("Test").Offset(4, 3).Select
				
Hvis det navngivne område findes i et andet regneark (ikke det aktive regneark), skal du først aktivere det pågældende regneark og derefter markere området ved hjælp af følgende eksempel:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13: Sådan markeres et angivet område, og sådan ændres størrelsen på markeringen

Hvis du vil markere det angivne område "Database" og derefter udvide markeringen med fem rækker, kan du benytte følgende eksempel:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				

14: Sådan markeres et angivet område, sådan forskydes det, og sådan ændres størrelsen på det

Hvis du vil markere et område fire rækker under og tre kolonner til højre for det navngivne område "Database" og medtage to rækker og én kolonne mere end i det navngivne område, kan du benytte følgende eksempel:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15: Sådan markeres foreningsmængden af to eller flere angivne områder

Hvis du vil markere foreningsmængden (dvs. det kombinerede område) af de to navngivne områder "Test" og "Sample", kan du benytte følgende eksempel:
Application.Union(Range("Test"), Range("Sample")).Select
				
Vær opmærksom på, at begge områder skal findes i det samme regneark, hvis dette eksempel skal fungere. Du skal også være opmærksom på, at metoden Union ikke fungerer på tværs af ark. For eksempel fungerer denne linje fint
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
men denne linje
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
returnerer fejlmeddelelsen:
Metoden Foreningsmængde for programklassen mislykkedes

16: Sådan markeres fællesmængden af to eller flere angivne områder

Hvis du vil markere fællesmængden af de to navngivne områder "Test" og "Sample", kan du benytte følgende eksempel:
Application.Intersect(Range("Test"), Range("Sample")).Select
				
Vær opmærksom på, at begge områder skal findes i det samme regneark, hvis dette eksempel skal fungere.



Eksemplerne 17-21 i denne artikel henviser til følgende datasæteksempel. Hvert eksempel angiver det celleområde i eksempeldataene, der markeres.
   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: Sådan markeres den sidste celle i en kolonne med sammenhængende data

Hvis du vil markere den sidste celle i en sammenhængende kolonne, skal du benytte følgende eksempel:
ActiveSheet.Range("a1").End(xlDown).Select
				
Når denne kode bruges sammen med eksempeltabellen, markeres celle A4.

18: Sådan markeres den tomme celle nederst i en kolonne med sammenhængende data

Hvis du vil markere den celle, der findes under et område bestående af sammenhængende celler, skal du benytte følgende eksempel:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
Når denne kode bruges sammen med eksempeltabellen, markeres celle A5.

19: Sådan markeres et helt område bestående af sammenhængende celler i en kolonne

Hvis du vil markere et område bestående af sammenhængende celler i en kolonne, skal du benytte et af følgende eksempler:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
   eller
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
Når denne kode bruges sammen med eksempeltabellen, markeres cellerne A1 til og med A4.

20: Sådan markeres et helt område bestående af ikke-sammenhængende celler i en kolonne

Hvis du vil markere et område bestående af ikke-sammenhængende celler, skal du benytte et af følgende eksempler:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
   eller
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
Når denne kode bruges sammen med eksempeltabellen, markeres cellerne A1 til og med A6.

21: Sådan markeres et rektangulært celleområde

Hvis du vil markere et rektangulært celleområde rundt om en celle, skal du benytte metoden CurrentRegion. Det område, der markeres af metoden CurrentRegion, er et område, der er bundet af en hvilken som helst kombination af tomme rækker og tomme kolonner. Nedenfor er vist et eksempel på, hvordan du benytter metoden CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select
				
Denne kode markerer cellerne A1 til og med C4. Nedenfor er der angivet andre eksempler, du kan bruge til at markere det samme celleområde:
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 nogle tilfælde vil du måske markere cellerne A1 til og med C6. I dette eksempel fungerer metoden CurrentRegion ikke på grund af den tomme linje i række 5. Følgende eksempler markerer alle cellerne:
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. Sådan markeres flere ikke-sammenhængende kolonner af forskellig længde

Hvis du vil markere flere ikke-sammenhængende kolonner af forskellig længde, skal du benytte følgende eksempeltabel og makroeksempel:
   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 denne kode bruges sammen med eksempeltabellen, markeres cellerne A1:A3 og C1:C6.

BEMÆRKNINGER TIL EKSEMPLERNE

  • Egenskaben ActiveSheet kan normalt udelades, da den er underforstået, hvis et specifikt ark ikke er navngivet. For eksempel i stedet for
    ActiveSheet.Range("D5").Select
    						
    kan du bruge:
    Range("D5").Select
    						
  • Egenskaben ActiveWorkbook kan normalt også udelades. Medmindre en specifik projektmappe er navngivet, er den aktive projektmappe underforstået.
  • Når du benytter metoden Application.Goto, skal du medtage objektet Sheets hver gang, hvis du vil benytte to metoder af typen Cells i metoden Range, når det angivne område findes i et andet regneark (ikke det aktive regneark). F.eks.:
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • I stedet for elementet i anførselstegn (f.eks. det navngivne område "Test") kan du også bruge en variabel, hvis værdi er en tekststreng. For eksempel i stedet for
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    kan du bruge
    ActiveWorkbook.Sheets(myVar).Activate
    						
    hvor værdien for myVar er "Sheet1".

Referencer


Du kan finde flere oplysninger om, hvordan du bruger eksempelkoden i denne artikel, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
290140 Sådan køres eksempelkoden til Office XP-programmerne fra vidensbaseartikler. Artiklen er evt. på engelsk.

Egenskaber

Artikel-id: 291308 - Seneste redigering: 23. november 2007 - Redigering: 6.1
Oplysningerne i denne artikel gælder:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard
  • Microsoft Excel 2000 Standard
  • Microsoft Excel 97 Standard
Nøgleord: 
kbhowto kbmacro kbprogramming kbautomation kbdtacode KB291308

Send feedback