如何使用Visual Basic 程序在Excel 中選取儲存格或範圍。 - Office
文章推薦指數: 80 %
或者,您可以啟動工作表,並再使用方法4 上述來選取範圍:. VB 複製. Sheets("Sheet3").Activate ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
閱讀英文
儲存
目錄
閱讀英文
儲存
Twitter
LinkedIn
Facebook
電子郵件
目錄
如何使用VisualBasic程序在Excel中選取儲存格/範圍
發行項
11/03/2021
適用於:
ExcelforOffice365,Excel2019,Excel2016,Excel2013,Excel2010
本文內容
Microsoft提供的程式設計範例僅供說明之用,並不具任何明示或暗示的責任擔保。
這包括(但不限於)任何目的之適售性及適用性的暗示責任擔保。
本文假設您熟悉示範的程式設計語言,也熟悉用以建立和偵錯程序的工具。
Microsoft支援工程師可以協助說明功能的特定程序,但它們不會修改這些範例,以提供新增功能或建構程序,以符合您特定的需求。
在本文中的範例使用下列表格所列出的VisualBasic方法。
MethodArguments
------------------------------------------
Activatenone
CellsrowIndex,columnIndex
Application.Gotoreference,scroll
OffsetrowOffset,columnOffset
Rangecell1
cell1,cell2
ResizerowSize,columnSize
Selectnone
Sheetsindex(orsheetName)
Workbooksindex(orbookName)
Enddirection
CurrentRegionnone
本文中的範例會使用下表中的屬性。
PropertyUse
---------------------------------------------------------------------
ActiveSheettospecifytheactivesheet
ActiveWorkbooktospecifytheactiveworkbook
Columns.Counttocountthenumberofcolumnsinthespecifieditem
Rows.Counttocountthenumberofrowsinthespecifieditem
Selectiontorefertothecurrentlyselectedrange
如何選取的儲存格上現用工作表
若要選取儲存格D5現用工作表上的,您可以使用其中一個下列的範例:
ActiveSheet.Cells(5,4).Select
-or-
ActiveSheet.Range("D5").Select
如何在相同的活頁簿中選取的儲存格上另一個工作表
若要選取另一張工作表上的儲存格E6相同的活頁簿中,您可以使用其中一個下列的範例:
Application.GotoActiveWorkbook.Sheets("Sheet2").Cells(6,5)
-or-
Application.Goto(ActiveWorkbook.Sheets("Sheet2").Range("E6"))
或者,您可以啟動工作表中,然後選取的儲存格使用上述的方法1:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6,5).Select
如何在不同的活頁簿中選取的工作表上的儲存格
若要選取不同的活頁簿中的工作表上的儲存格F7,您可以使用其中一個下列的範例:
Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7,6)
-or-
Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
或者,您可以啟動工作表中,然後選取的儲存格使用上述的方法1:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7,6).Select
如何選取範圍的儲存格在現用工作表
若要選取的範圍C2:D10現用工作表上,您可以使用任何下列的範例:
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,itcouldbesimplifiedtothis:
Range(Cells(2,3),Cells(10,4)).Select
如何在相同的活頁簿中選取範圍的另一個工作表儲存格
若要在相同的活頁簿中選取範圍d3:e11另一張工作表上,您可以使用其中一個下列的範例:
Application.GotoActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.GotoActiveWorkbook.Sheets("Sheet3").Range("D3","E11")
或者,您可以啟動工作表,並再使用方法4上述來選取範圍:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3,4),Cells(11,5)).Select
如何在不同的活頁簿中選取儲存格範圍的工作表上
若要選取不同的活頁簿範圍e4:f12工作表上,您可以使用其中一個下列的範例:
Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto_
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4","F12")
或者,您可以啟動工作表,並再使用方法4上述來選取範圍:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4,5),Cells(12,6)).Select
如何選取現用工作表上的具名的範圍
若要選取現用工作表上指定的範圍"Test",您可以使用其中一個下列的範例:
Range("Test").Select
Application.Goto"Test"
如何在相同的活頁簿中選取另一個工作表上的具名的範圍
若要選取另一張工作表上指定的範圍"Test"相同的活頁簿中,您可以使用下列範例:
Application.GotoSheets("Sheet1").Range("Test")
或者,您可以啟動工作表,並再使用方法7上述來選取指定的範圍:
Sheets("Sheet1").Activate
Range("Test").Select
如何在不同的活頁簿中選取的工作表上指定的範圍
若要選取不同的活頁簿中的工作表上指定的範圍"Test",您可以使用下列範例:
Application.Goto_
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
或者,您可以啟動工作表,並再使用方法7上述來選取指定的範圍:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
如何選取儲存格相對於作用儲存格
若要選取下列五個資料列及四欄左邊的作用儲存格的儲存格,您可以使用下列範例:
ActiveCell.Offset(5,-4).Select
若要選取上述兩個資料列和作用儲存格右邊三欄的儲存格,您可以使用下列範例:
ActiveCell.Offset(-2,3).Select
注意
如果您嘗試選取「關閉工作表。
」的儲存格,會發生錯誤如果作用中儲存格位於欄A到D,因為向左移動四欄會採取作用儲存格到無效的儲存格位址,如上所示的第一個範例會傳回錯誤。
如何選取另一個儲存格與相對(不是使用中)的儲存格
若要選取下列五個資料列及四欄的儲存格C7右方的儲存格,您可以使用其中一個下列的範例:
ActiveSheet.Cells(7,3).Offset(5,4).Select
ActiveSheet.Range("C7").Offset(5,4).Select
如何選取儲存格範圍從指定範圍位移
若要選取的儲存格是具名的範圍"Test"大小相同,但,不通變動的四個資料列和右邊三欄的範圍,您可以使用下列範例:
ActiveSheet.Range("Test").Offset(4,3).Select
如果指定的範圍是在另一個(不是使用中)工作表中,首先,啟動該工作表,然後選取[使用下列範例中的範圍:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4,3).Select
如何選取指定的範圍,並調整選取範圍的大小
若要選取指定的範圍"Database",然後延伸選取範圍的五個資料列,您可以使用下列範例:
Range("Database").Select
Selection.Resize(Selection.Rows.Count+5,_
Selection.Columns.Count).Select
如何選取指定的範圍,位移,,然後調整大小
若要選取下面的範圍四個資料列和右邊的已命名的範圍"Database"的三個欄,並包含兩個資料列和一欄超過指定的範圍,您可以使用下列範例:
Range("Database").Select
Selection.Offset(4,3).Resize(Selection.Rows.Count+2,_
Selection.Columns.Count+1).Select
如何選取兩個以上的聯集指定範圍
若要選取兩個已命名的範圍"Test"和"Sample"的聯集(也就是合併區域),您可以使用下列範例:
Application.Union(Range("Test"),Range("Sample")).Select
注意
這兩個範圍必須在這個範例正常執行的相同工作表上。
也請注意Union方法不適用於跨越工作表。
例如,這一行運作正常。
Sety=Application.Union(Range("Sheet1!A1:B2"),Range("Sheet1!C3:D4"))
但這一行
Sety=Application.Union(Range("Sheet1!A1:B2"),Range("Sheet2!C3:D4"))
會傳回錯誤訊息:
失敗的應用程式類別Union方法
如何選取交集的兩個或多個指定範圍
若要選取的兩個已命名的範圍"Test"和"Sample"交集,您可以使用下列範例:
Application.Intersect(Range("Test"),Range("Sample")).Select
請注意,這兩個範圍必須在這個範例正常執行的相同工作表上。
下列範例設定的資料,請參閱本文中的範例1721。
每個範例說明中所選取的範例資料的儲存格範圍。
A1:NameB1:SalesC1:Quantity
A2:aB2:$10C2:5
A3:bB3:C3:10
A4:cB4:$10C4:5
A5:B5:C5:
A6:TotalB6:$20C6:20
如何選取的連續的資料行的最後一個儲存格
若要連續欄中選取的最後一個儲存格,請使用下列範例:
ActiveSheet.Range("a1").End(xlDown).Select
這段程式碼範例資料表後使用時,會選取儲存格a4旁。
如何選取底部的連續的資料行空白儲存格
若要選取以下一系列連續的儲存格的儲存格,請使用下列範例:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
這段程式碼範例資料表後使用時,會選取儲存格A5。
如何在資料行中選取的連續儲存格整個範圍
若要選取連續的儲存格範圍]欄中,使用下列其中一個下列範例:
ActiveSheet.Range("a1",ActiveSheet.Range("a1").End(xlDown)).Select
-or-
ActiveSheet.Range("a1:"&ActiveSheet.Range("a1")._
End(xlDown).Address).Select
這段程式碼範例資料表後使用時,會選取儲存格A1到A4。
如何在資料行中選取整個範圍的非連續的儲存格
若要選取非連續的儲存格範圍,請使用下列其中一個下列的範例:
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
這段程式碼範例資料表後使用時,它會選取儲存格A1到A6。
如何選取矩形範圍的儲存格
若要選取儲存格周圍的儲存格的矩形範圍,請使用CurrentRegion方法。
CurrentRegion方法所選取的範圍是圍有空白列及空白欄任意組合的區域。
以下是如何使用CurrentRegion方法的範例:
ActiveSheet.Range("a1").CurrentRegion.Select
這段程式碼會選取儲存格A1到C4。
其他範例,以選取相同的儲存格範圍如下:
ActiveSheet.Range("a1",_
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
-or-
ActiveSheet.Range("a1:"&_
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
在某些情況下,您可能想要選取儲存格A1到C6。
在這個範例中,CurrentRegion方法上無法運作因為空白行第5列。
下列範例會選取所有的儲存格:
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
若要選取不同的長度的多個非連續的資料行的方式
若要選取不同的長度的多個非連續的資料行,請使用下列的範例表格和巨集範例:
A1:1B1:1C1:1D1:1
A2:2B2:2C2:2D2:2
A3:3B3:3C3:3D3:3
A4:B4:4C4:4D4:4
A5:B5:5C5:5D5:
A6:B6:C6:6D6:
StartRange="A1"
EndRange="C1"
Seta=Range(StartRange,Range(StartRange).End(xlDown))
Setb=Range(EndRange,Range(EndRange).End(xlDown))
Union(a,b).Select
這段程式碼範例資料表後使用時,會選取儲存格a1:a3和c1:c6。
附註範例
通常可以省略ActiveSheet屬性,因為它隱含如果未命名為特定的工作表。
例如,而不是
ActiveSheet.Range("D5").Select
您可以使用:
Range("D5").Select
ActiveWorkbook屬性可通常也會略過。
除非名為特定的活頁簿,即意指現用活頁簿。
當您使用Application.Goto方法,如果您想要使用Range方法中的兩個儲存格方法時指定的範圍是上另一個(不是使用中)工作表中,您必須包含Sheets物件每次。
例如:
WithActiveWorkbook.Sheets("Sheet1")
Application.Goto.Range(.Cells(2,3),.Cells(4,5))
EndWith
對於引號(例如,具名範圍"Test")括住任何項目,您也可以使用其值是一個文字字串的變數。
例如,而不是
ActiveWorkbook.Sheets("Sheet1").Activate
您可以使用
ActiveWorkbook.Sheets(myVar).Activate
其中myVar的值會是"Sheet1"。
本文內容
延伸文章資訊
- 1Vba中cells的用法小记 - 简书
VBA订制工具栏http://club.excelhome.net/thread-1047254-1-1.htm... ... 上次给大家分享了《2017年最全的excel函数大全9—数学和三角...
- 2EXCEL VBA從頭來過-基本語法(上篇) - 張凱喬
VBA(全名為Visual Basic for Applications) 是一種Windows 下的巨集程式語言其語法承襲傳統的Visual Basic 在微軟Office 之中的各種 ...
- 3VBA入門只需3天Range的用法小記 - 每日頭條
如果使用Cells,Cells中含變量是更加方便的,一般我們循環的時候都是用Cells來循環的。 Sub main() Dim num As Integer Let num = 2 Cells(...
- 4Worksheet.Cells 屬性(Excel) | Microsoft Docs
Office VBA reference topic. ... Worksheet.Cells 屬性(Excel). 發行項; 2022/04/07; 1 位參與者 ... expression...
- 5VBA 常用參數方法| CYL菜鳥攻略 - - 點部落
WorksheetFunction:表示呼叫當前Excel程式裡的公式。 ... https://blog.gtwang.org/programming/excel-vba-programmin...