Range 物件(Excel) | Microsoft Docs

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

下列範例會將A1 儲存格的值指派給A5 儲存格。

VB 複製. Worksheets("Sheet1") ... 跳到主要內容 已不再支援此瀏覽器。

請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。

下載MicrosoftEdge 其他資訊 目錄 結束焦點模式 閱讀英文 儲存 目錄 閱讀英文 儲存 編輯 Twitter LinkedIn Facebook 電子郵件 目錄 Range物件(Excel) 發行項 06/02/2022 1位參與者 本文內容 代表儲存格、列、欄、包含一個或多個連續儲存格區塊的儲存格選取範圍,或是立體範圍。

注意 對於開發跨多個平台,擴充使用者Office體驗的解決方案感到興趣嗎?請參閱新的Office增益集模型。

與VSTO增益集和解決方案相比,Office增益集的佔用空間較小,而且您可以使用幾乎任何網頁程式技術(例如HTML5、JavaScript、CSS3和XML)來建立這些增益集。

備註 Range的預設成員會將不帶參數的呼叫轉傳到Value屬性,將帶參數的呼叫轉傳到Item成員。

相應地,someRange=someOtherRange等於someRange.Value=someOtherRange.Value、someRange(1)等於someRange.Item(1)以及someRange(1,1)等於someRange.Item(1,1)。

在範例部分將會描述下列可傳回Range物件的屬性及方法: Worksheet物件的Range和Cells屬性 Range物件的Range和Cells屬性 Worksheet物件的Rows和Columns屬性 Range物件的Rows和Columns屬性 Range物件的Offset屬性 Application物件的Union方法 範例 使用Range(arg)來傳回代表單一儲存格或儲存格範圍的Range物件,其中的arg會命名範圍。

下列範例會將A1儲存格的值指派給A5儲存格。

Worksheets("Sheet1").Range("A5").Value=_ Worksheets("Sheet1").Range("A1").Value 下列範例會為範圍中每個儲存格設定公式,以隨機數字填滿範圍A1:H8。

如果使用此公式時沒有指定物件限定詞(句點左邊的物件),則Range屬性會在使用中的試算表上傳回範圍。

如果使用中的試算表不是工作表(worksheet),則此方法將會無效。

必須先使用Worksheet物件的Activate方法啟用工作表,才能在沒有明確物件限定詞的情況下使用Range屬性。

Worksheets("Sheet1").Activate Range("A1:H8").Formula="=Rand()"'Rangeisontheactivesheet 下列範例會清除Criteria範圍的內容。

注意 如果用文字引數指定範圍位址,則必須以A1樣式的標記法指定該位址(不能使用R1C1樣式的標記法)。

Worksheets(1).Range("Criteria").ClearContents 在工作表上使用Cells可取得工作表中包含所有單一儲存格的範圍。

您可以透過Item(row,column)存取單一儲存格,其中row是列索引,column是欄索引。

Item可以省略,因為呼叫會透過Range的預設成員轉傳而來。

下列範例會在使用中活頁簿的第一個工作表中,將儲存格A1的值設定為24,儲存格B1的值設定為42。

Worksheets(1).Cells(1,1).Value=24 Worksheets(1).Cells.Item(1,2).Value=42 下列範例會設定A2儲存格的公式。

ActiveSheet.Cells(2,1).Formula="=Sum(B1:B5)" 雖然您也可以使用Range("A1")來傳回儲存格A1,但有時使用Cells屬性更方便,因為您可以使用列或欄的變數。

下列範例會在Sheet1上建立欄和列標題。

請注意,啟用工作表後,不用明確宣告試算表即可使用Cells屬性(傳回的儲存格會位在使用中的試算表上)。

注意 雖然可以使用VisualBasic字串函數來變更A1樣式的參照,但是使用Cells(1,1)標記法會較簡便(而且也是較好的程式撰寫方式)。

SubSetUpTable() Worksheets("Sheet1").Activate ForTheYear=1To5 Cells(1,TheYear+1).Value=1990+TheYear NextTheYear ForTheQuarter=1To4 Cells(TheQuarter+1,1).Value="Q"&TheQuarter NextTheQuarter EndSub Use_expression_.Cells可取得相同位址中由單一儲存格組成的範圍,其中的expression是可傳回Range物件的運算式。

在這個範圍中,您可以透過Item(row,column)存取單一儲存格,其中的值是相對於範圍中第一個區域左上角的相對值。

Item可以省略,因為呼叫會透過Range的預設成員轉傳而來。

下列範例會在使用中活頁簿的第一個工作表中,設定C5和D5的公式。

Worksheets(1).Range("C5:C10").Cells(1,1).Formula="=Rand()" Worksheets(1).Range("C5:C10").Cells.Item(1,2).Formula="=Rand()" 使用Range(cell1,cell2)可傳回Range物件,其中的cell1及cell2是Range物件,用來指定起始和終止位置的儲存格。

下列範例會設定儲存格A1:J10的框線線條樣式。

注意 請注意,如果前面的With陳述式的結果將套用於Cells屬性,則需要在每次出現Cells屬性前加一個句點。

在這種情況下,這表示儲存格於工作表1上(若沒有句點,Cells屬性將傳回使用中工作表上的儲存格)。

WithWorksheets(1) .Range(.Cells(1,1),_ .Cells(10,10)).Borders.LineStyle=xlThick EndWith 在工作表上使用Rows可取得工作表中包含所有列的範圍。

您可以透過Item(row)存取單一列,其中row是列索引。

Item可以省略,因為呼叫會透過Range的預設成員轉傳而來。

注意 將Item的第二個參數提供給由列組成的範圍是不合法的。

您必須先透過Cells轉換為單一儲存格。

下列範例會在使用中活頁簿的第一個工作表中,刪除第5列和第10列。

Worksheets(1).Rows(10).Delete Worksheets(1).Rows.Item(5).Delete 在工作表上使用Columns可取得工作表中包含所有欄的範圍。

您可以透過Item(row)[sic]存取單一欄,其中row是欄索引,以數字或A1樣式的欄位址形式指定。

Item可以省略,因為呼叫會透過Range的預設成員轉傳而來。

注意 將Item的第二個參數提供給由欄組成的範圍是不合法的。

您必須先透過Cells轉換為單一儲存格。

下列範例會在使用中活頁簿的第一個工作表中,刪除B欄、C欄、E欄和J欄。

Worksheets(1).Columns(10).Delete Worksheets(1).Columns.Item(5).Delete Worksheets(1).Columns("C").Delete Worksheets(1).Columns.Item("B").Delete Use_expression_.Rows可取得範圍中第一個區域中由列組成的範圍,其中的expression是可傳回Range物件的運算式。

您可以透過Item(row)存取單一列,其中row是從範圍中第一個區域最上方開始的相對列索引。

Item可以省略,因為呼叫會透過Range的預設成員轉傳而來。

注意 將Item的第二個參數提供給由列組成的範圍是不合法的。

您必須先透過Cells轉換為單一儲存格。

下列範例會在使用中活頁簿的第一個工作表中,刪除C8:D8範圍和C6:D6範圍。

Worksheets(1).Range("C5:D10").Rows(4).Delete Worksheets(1).Range("C5:D10").Rows.Item(2).Delete Use_expression_.Columns可取得範圍中第一個區域中由欄組成的範圍,其中的expression是可傳回Range物件的運算式。

您可以透過Item(row)[sic]存取單一欄,其中row是從範圍中第一個區域左方開始的相對欄索引,以數字或A1樣式的欄位址形式指定。

Item可以省略,因為呼叫會透過Range的預設成員轉傳而來。

注意 將Item的第二個參數提供給由欄組成的範圍是不合法的。

您必須先透過Cells轉換為單一儲存格。

下列範例會在使用中活頁簿的第一個工作表中,刪除L2:L10範圍、G2:G10範圍、F2:F10範圍和D2:D10範圍。

Worksheets(1).Range("C5:Z10").Columns(10).Delete Worksheets(1).Range("C5:Z10").Columns.Item(5).Delete Worksheets(1).Range("C5:Z10").Columns("D").Delete Worksheets(1).Range("C5:Z10").Columns.Item("B").Delete 使用Offset(row,column)可以傳回相對於另一範圍指定之位移處的範圍,其中row及column是列位移及欄位移。

下列範例會選取位於目前選取範圍左上角儲存格向下三列、向右一欄處的儲存格。

您無法選取不在使用中試算表中的儲存格,因此必須先啟動工作表。

Worksheets("Sheet1").Activate 'Can'tselectunlessthesheetisactive Selection.Offset(3,1).Range("A1").Select 使用Union(range1,range2,...)可以傳回多區域的範圍,即該範圍是由兩個以上的連續儲存格區塊所組成。

下列範例會建立定義為A1:B2範圍與C3:D4範圍聯集的物件,然後選取定義的範圍。

Dimr1AsRange,r2AsRange,myMultiAreaRangeAsRange Worksheets("sheet1").Activate Setr1=Range("A1:B2") Setr2=Range("C3:D4") SetmyMultiAreaRange=Union(r1,r2) myMultiAreaRange.Select 使用包含多個區域的選取範圍時,Areas屬性格外有用。

此屬性會將多區域的選取範圍分成個別的Range物件,然後以集合的形式傳回這些物件。

對傳回的集合使用Count屬性,以驗證是否有包含多個區域的選取範圍,如下列範例所示。

SubNoMultiAreaSelection() NumberOfSelectedAreas=Selection.Areas.Count IfNumberOfSelectedAreas>1Then MsgBox"Youcannotcarryoutthiscommand"&_ "onmulti-areaselections" EndIf EndSub 此範例會使用Range物件的AdvancedFilter方法,在欄位A範圍中建立唯一值的清單,以及值發生的次數。

SubCreate_Unique_List_Count() 'Excelworkbook,thesourceandtargetworksheets,andthesourceandtargetranges. DimwbBookAsWorkbook DimwsSourceAsWorksheet DimwsTargetAsWorksheet DimrnSourceAsRange DimrnTargetAsRange DimrnUniqueAsRange 'Varianttoholdtheuniquedata DimvaUniqueAsVariant 'Numberofuniquevaluesinthedata DimlnCountAsLong 'InitializetheExcelobjects SetwbBook=ThisWorkbook WithwbBook SetwsSource=.Worksheets("Sheet1") SetwsTarget=.Worksheets("Sheet2") EndWith 'Onthesourceworksheet,settherangetothedatastoredincolumnA WithwsSource SetrnSource=.Range(.Range("A1"),.Range("A100").End(xlDown)) EndWith 'Onthetargetworksheet,settherangeascolumnA. SetrnTarget=wsTarget.Range("A1") 'UseAdvancedFiltertocopythedatafromthesourcetothetarget, 'whilefilteringforduplicatevalues. rnSource.AdvancedFilterAction:=xlFilterCopy,_ CopyToRange:=rnTarget,_ Unique:=True 'Onthetargetworksheet,settheuniquerangeonColumnA,excludingthefirstcell '(whichwillcontainthe"List"headerforthecolumn). WithwsTarget SetrnUnique=.Range(.Range("A2"),.Range("A100").End(xlUp)) EndWith 'AssignallthevaluesoftheUniquerangeintotheUniquevariant. vaUnique=rnUnique.Value 'Countthenumberofoccurrencesofeveryuniquevalueinthesourcedata, 'andlistitnexttoitsrelevantvalue. ForlnCount=1ToUBound(vaUnique) rnUnique(lnCount,1).Offset(0,1).Value=_ Application.Evaluate("COUNTIF("&_ rnSource.Address(External:=True)&_ ","""&rnUnique(lnCount,1).Text&""")") NextlnCount 'Labelthecolumnofoccurrenceswith"Occurrences" WithrnTarget.Offset(0,1) .Value="Occurrences" .Font.Bold=True EndWith EndSub 方法 Activate AddComment AddCommentThreaded AdvancedFilter AllocateChanges ApplyNames ApplyOutlineStyles AutoComplete AutoFill AutoFilter AutoFit AutoOutline BorderAround Calculate CalculateRowMajorOrder CheckSpelling Clear ClearComments ClearContents ClearFormats ClearHyperlinks ClearNotes ClearOutline ColumnDifferences Consolidate ConvertToLinkedDataType Copy CopyFromRecordset CopyPicture CreateNames Cut DataTypeToText DataSeries Delete DialogBox Dirty DiscardChanges EditionOptions ExportAsFixedFormat FillDown FillLeft FillRight FillUp Find FindNext FindPrevious FlashFill FunctionWizard Group Insert InsertIndent Justify ListNames Merge NavigateArrow NoteText Parse PasteSpecial PrintOut PrintPreview RemoveDuplicates RemoveSubtotal Replace RowDifferences Run Select SetCellDataTypeFromCell SetPhonetic Show ShowCard ShowDependents ShowErrors ShowPrecedents Sort SortSpecial Speak SpecialCells SubscribeTo Subtotal 表格 TextToColumns Ungroup UnMerge 屬性 AddIndent Address AddressLocal AllowEdit 應用程式 Areas Borders Cells Characters 欄 Columns ColumnWidth Comment CommentThreaded Count CountLarge Creator CurrentArray CurrentRegion Dependents DirectDependents DirectPrecedents DisplayFormat End EntireColumn EntireRow 錯誤 Font FormatConditions Formula FormulaArray FormulaHidden FormulaLocal FormulaR1C1 FormulaR1C1Local HasArray HasFormula HasRichDataType Height 隱藏 HorizontalAlignment Hyperlinks 識別碼 IndentLevel Interior 項目 Left LinkedDataTypeState ListHeaderRows ListObject LocationInTable Locked MDX MergeArea MergeCells 名稱 Next NumberFormat NumberFormatLocal Offset Orientation OutlineLevel PageBreak Parent Phonetic Phonetics PivotCell PivotField PivotItem PivotTable Precedents PrefixCharacter Previous QueryTable Range ReadingOrder Resize 列 RowHeight Rows ServerActions ShowDetail ShrinkToFit SoundNote SparklineGroups Style 摘要 Text Top UseStandardHeight UseStandardWidth Validation 值 Value2 VerticalAlignment Width Worksheet WrapText XPath 另請參閱 Excel物件模型參考資料 支援和意見反應 有關於OfficeVBA或這份文件的問題或意見反應嗎?如需取得支援服務並提供意見反應的相關指導,請參閱OfficeVBA支援與意見反應。

本文內容



請為這篇文章評分?