如何使用Visual Basic 程序在Excel 中選取儲存格或範圍。 - Office

文章推薦指數: 80 %
投票人數:10人

或者,您可以啟動工作表,並再使用方法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"。

本文內容



請為這篇文章評分?