Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika. W przykładach w tym artykule użyto metod języka Visual Basic wymienionych w poniższej tabeli.
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
W przykładach w tym artykule użyto właściwości w poniższej tabeli.
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
Jak wybrać komórkę w aktywnym arkuszu
Aby wybrać komórkę D5 w aktywnym arkuszu, możesz użyć jednego z następujących przykładów:
ActiveSheet.Cells(5, 4).Select
-or-
ActiveSheet.Range("D5").Select
Jak wybrać komórkę w innym arkuszu w tym samym skoroszycie
Aby wybrać komórkę E6 w innym arkuszu w tym samym skoroszycie, możesz użyć jednego z następujących przykładów:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
-or-
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
Możesz też aktywować arkusz, a następnie użyć metody 1 powyżej, aby wybrać komórkę:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
Jak wybrać komórkę w arkuszu w innym skoroszycie
Aby wybrać komórkę F7 w arkuszu w innym skoroszycie, możesz użyć jednego z następujących przykładów:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
-or-
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
Możesz też aktywować arkusz, a następnie użyć metody 1 powyżej, aby wybrać komórkę:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
Jak wybrać zakres komórek w aktywnym arkuszu
Aby wybrać zakres C2:D10 w aktywnym arkuszu, możesz użyć dowolnego z następujących przykładów:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select
or
ActiveSheet.Range(ActiveSheet.Cells(2, 3), ActiveSheet.Cells(10, 4)).Select
or, alternatively, it could be simplified to this:
Range(Cells(2, 3), Cells(10, 4)).Select
Jak wybrać zakres komórek w innym arkuszu w tym samym skoroszycie
Aby wybrać zakres D3:E11 w innym arkuszu w tym samym skoroszycie, możesz użyć jednego z następujących przykładów:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
Możesz też aktywować arkusz, a następnie użyć metody 4 powyżej, aby wybrać zakres:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
Jak wybrać zakres komórek w arkuszu w innym skoroszycie
Aby wybrać zakres E4:F12 w arkuszu w innym skoroszycie, możesz użyć jednego z następujących przykładów:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
Możesz też aktywować arkusz, a następnie użyć metody 4 powyżej, aby wybrać zakres:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
Jak wybrać nazwany zakres w aktywnym arkuszu
Aby wybrać nazwany zakres "Test" w aktywnym arkuszu, możesz użyć jednego z następujących przykładów:
Range("Test").Select
Application.Goto "Test"
Jak wybrać nazwany zakres w innym arkuszu w tym samym skoroszycie
Aby wybrać nazwany zakres "Test" w innym arkuszu w tym samym skoroszycie, możesz użyć następującego przykładu:
Application.Goto Sheets("Sheet1").Range("Test")
Możesz też aktywować arkusz, a następnie użyć metody 7 powyżej, aby wybrać nazwany zakres:
Sheets("Sheet1").Activate
Range("Test").Select
Jak wybrać nazwany zakres w arkuszu w innym skoroszycie
Aby wybrać nazwany zakres "Test" w arkuszu w innym skoroszycie, możesz użyć następującego przykładu:
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
Możesz też aktywować arkusz, a następnie użyć metody 7 powyżej, aby wybrać nazwany zakres:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
Jak wybrać komórkę względną do aktywnej komórki
Aby wybrać komórkę zawierającą pięć wierszy poniżej i cztery kolumny po lewej stronie aktywnej komórki, możesz użyć następującego przykładu:
ActiveCell.Offset(5, -4).Select
Aby wybrać komórkę z dwoma wierszami powyżej i trzema kolumnami po prawej stronie aktywnej komórki, możesz użyć następującego przykładu:
ActiveCell.Offset(-2, 3).Select
Uwaga
Jeśli spróbujesz wybrać komórkę "poza arkuszem", wystąpi błąd. Pierwszy pokazany powyżej przykład zwróci błąd, jeśli aktywna komórka znajduje się w kolumnach od A do D, ponieważ przeniesienie czterech kolumn w lewo spowoduje przeniesienie aktywnej komórki na nieprawidłowy adres komórki.
Jak wybrać komórkę względną do innej (nie aktywnej) komórki
Aby wybrać komórkę zawierającą pięć wierszy poniżej i cztery kolumny po prawej stronie komórki C7, możesz użyć jednego z następujących przykładów:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
ActiveSheet.Range("C7").Offset(5, 4).Select
Jak wybrać zakres komórek przesunięty z określonego zakresu
Aby wybrać zakres komórek o tym samym rozmiarze co nazwany zakres "Test", ale przesunięty w dół o cztery wiersze i trzy kolumny w prawo, możesz użyć następującego przykładu:
ActiveSheet.Range("Test").Offset(4, 3).Select
Jeśli nazwany zakres znajduje się w innym arkuszu (nie aktywnym), najpierw aktywuj ten arkusz, a następnie wybierz zakres, korzystając z następującego przykładu:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
Jak wybrać określony zakres i zmienić rozmiar zaznaczenia
Aby wybrać nazwany zakres "Baza danych", a następnie rozszerzyć zaznaczenie o pięć wierszy, możesz użyć następującego przykładu:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
Selection.Columns.Count).Select
Jak wybrać określony zakres, przesuń go, a następnie zmień jego rozmiar
Aby wybrać zakres cztery wiersze poniżej i trzy kolumny po prawej stronie nazwanego zakresu "Baza danych" i uwzględnić dwa wiersze i jedną kolumnę większą niż nazwany zakres, możesz użyć następującego przykładu:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
Selection.Columns.Count + 1).Select
Jak wybrać unię dwóch lub większej liczby określonych zakresów
Aby wybrać unię (czyli połączony obszar) dwóch nazwanych zakresów "Test" i "Sample", możesz użyć następującego przykładu:
Application.Union(Range("Test"), Range("Sample")).Select
Uwaga
że oba zakresy muszą znajdować się w tym samym arkuszu, aby ten przykład działał. Należy również zauważyć, że metoda Union nie działa w arkuszach. Na przykład ten wiersz działa poprawnie.
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
ale ten wiersz
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
Zwraca komunikat o błędzie:
Metoda Union klasy aplikacji nie powiodła się
Jak wybrać przecięcie co najmniej dwóch określonych zakresów
Aby wybrać przecięcie dwóch nazwanych zakresów "Test" i "Sample", możesz użyć następującego przykładu:
Application.Intersect(Range("Test"), Range("Sample")).Select
Należy pamiętać, że oba zakresy muszą znajdować się w tym samym arkuszu, aby ten przykład działał.
Przykłady 17–21 w tym artykule dotyczą następującego przykładowego zestawu danych. Każdy przykład zawiera zakres komórek w przykładowych danych, które zostaną wybrane.
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
Jak wybrać ostatnią komórkę kolumny ciągłych danych
Aby wybrać ostatnią komórkę w ciągłej kolumnie, użyj następującego przykładu:
ActiveSheet.Range("a1").End(xlDown).Select
Gdy ten kod jest używany z przykładową tabelą, zostanie wybrana komórka A4.
Jak wybrać pustą komórkę u dołu kolumny ciągłych danych
Aby wybrać komórkę poniżej zakresu ciągłych komórek, użyj następującego przykładu:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
Gdy ten kod jest używany z przykładową tabelą, zostanie wybrana komórka A5.
Jak wybrać cały zakres ciągłych komórek w kolumnie
Aby wybrać zakres ciągłych komórek w kolumnie, użyj jednego z następujących przykładów:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
-or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
End(xlDown).Address).Select
Gdy ten kod jest używany z przykładową tabelą, zostaną wybrane komórki od A1 do A4.
Jak wybrać cały zakres komórek nieciągłych w kolumnie
Aby wybrać zakres komórek, które nie są ciągłe, użyj jednego z następujących przykładów:
ActiveSheet.Range("a1",ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp)).Select
-or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a" & ActiveSheet.Rows.Count). _
End(xlUp).Address).Select
Gdy ten kod jest używany z przykładową tabelą, wybiera komórki od A1 do A6.
Jak wybrać prostokątny zakres komórek
Aby wybrać prostokątny zakres komórek wokół komórki, użyj metody CurrentRegion. Zakres wybrany przez metodę CurrentRegion jest obszarem ograniczonym dowolną kombinacją pustych wierszy i pustych kolumn. Poniżej przedstawiono przykład użycia metody CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select
Ten kod wybierze komórki od A1 do C4. Poniżej przedstawiono inne przykłady wybierania tego samego zakresu komórek:
ActiveSheet.Range("a1", _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
-or-
ActiveSheet.Range("a1:" & _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
W niektórych przypadkach możesz wybrać komórki od A1 do C6. W tym przykładzie metoda CurrentRegion nie będzie działać z powodu pustego wiersza w wierszu 5. W poniższych przykładach zaznaczone zostaną wszystkie komórki:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
-or-
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
ActiveSheet.Cells(lastRow, lastCol).Address).Select
Jak wybrać wiele nieciągłych kolumn o różnej długości
Aby wybrać wiele nieciągłych kolumn o różnej długości, użyj poniższej przykładowej tabeli i przykładu makra:
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
Gdy ten kod jest używany z przykładową tabelą, zostaną wybrane komórki A1:A3 i C1:C6.
Uwagi dotyczące przykładów
Właściwość ActiveSheet jest zwykle pomijana, ponieważ jest sugerowana, jeśli określony arkusz nie ma nazwy. Na przykład zamiast
ActiveSheet.Range("D5").Select
można użyć:
Range("D5").Select
Zazwyczaj można również pominąć właściwość ActiveWorkbook. Jeśli konkretny skoroszyt nie zostanie nazwany, aktywny skoroszyt zostanie dorozumiany.
Jeśli używasz metody Application.Goto, jeśli chcesz użyć dwóch metod komórek w metodzie Range, gdy określony zakres znajduje się w innym arkuszu (nie aktywnym), musisz za każdym razem dołączyć obiekt Arkusze. Przykład:
With ActiveWorkbook.Sheets("Sheet1")
Application.Goto .Range(.Cells(2, 3), .Cells(4, 5))
End With
Dla dowolnego elementu w cudzysłowie (na przykład nazwanego zakresu "Test") można również użyć zmiennej, której wartość jest ciągiem tekstowym. Na przykład zamiast
ActiveWorkbook.Sheets("Sheet1").Activate
można użyć
ActiveWorkbook.Sheets(myVar).Activate
gdzie wartość myVar to "Sheet1".