Class Range (Excel VBA)
The class Range represents a cell, a row, a column, a selection of cells containing one or more contiguous blocks of cells, or a 3D range.
To use a Range class variable it first needs to be instantiated, for example
Dim rng as Range Set rng = ActiveCell
The following procedures can be used to set variables of type Range: Areas, AboveAverage.AppliesTo, AllowEditRange.Range, Application.ActiveCell, Application.Cells, Application.Columns, Application.Intersect, Application.Range, Application.Rows, Application.Union, Application.PreviousSelections, Application.ThisCell, Areas.Item, AutoFilter.Range, Axis.CategoryNames, ChartObject.BottomRightCell, ChartObject.TopLeftCell, ColorScale.AppliesTo, Databar.AppliesTo, DisplayFormat.NumberFormat, DisplayFormat.AddIndent, DisplayFormat.HorizontalAlignment, DisplayFormat.Orientation, DisplayFormat.VerticalAlignment, DisplayFormat.FormulaHidden, DisplayFormat.IndentLevel, DisplayFormat.MergeCells, DisplayFormat.NumberFormatLocal, DisplayFormat.ShrinkToFit, FormatCondition.AppliesTo, HPageBreak.Location, Hyperlink.Range, IconSetCondition.AppliesTo, ListColumn.Range, ListColumn.DataBodyRange, ListColumn.Total, ListObject.Range, ListObject.DataBodyRange, ListObject.HeaderRowRange, ListObject.InsertRowRange, ListObject.TotalsRowRange, ListRow.Range, Name.RefersToRange, OLEObject.BottomRightCell, OLEObject.TopLeftCell, Pane.VisibleRange, Parameter.SourceRange, PivotCell.Range, PivotField.DataRange, PivotField.LabelRange, PivotItem.DataRange, PivotItem.LabelRange, PivotTable.DataBodyRange, PivotTable.ColumnRange, PivotTable.DataLabelRange, PivotTable.GetPivotData, PivotTable.PageRange, PivotTable.PageRangeCells, PivotTable.RowRange, PivotTable.TableRange1, PivotTable.TableRange2, QueryTable.Destination, QueryTable.ResultRange, Cells, Columns, Range, Rows, Item, Next, Previous, Resize, ColumnDifferences, CurrentArray, CurrentRegion, Dependents, DirectDependents, DirectPrecedents, End, EntireColumn, EntireRow, Find, FindNext, FindPrevious, MergeArea, Offset, Precedents, RowDifferences, SpecialCells, SpillingToRange, SpillParent, Ranges.Item, Scenario.ChangingCells, Shape.BottomRightCell, Shape.TopLeftCell, Sort.Rng, SortField.Key, Sparkline.Location, SparklineGroup.Location, SparklineGroups.Parent, TableObject.Destination, TableObject.ResultRange, Top10.AppliesTo, UniqueValues.AppliesTo, VPageBreak.Location, Window.ActiveCell, Window.VisibleRange, Window.RangeFromPoint, Window.RangeSelection, Worksheet.Cells, Worksheet.Columns, Worksheet.Range, Worksheet.Rows, Worksheet.CircularReference, Worksheet.UsedRange, Worksheet.XmlDataQuery, Worksheet.XmlMapQuery and WorkbookConnection.Ranges
Here is an example of processing the Range items in a collection.
Dim rng As Range: Set rng = Dim rngArea As Range For Each rngArea In rng.Areas With rngArea End With Next rngArea
Some procedures in this class have been grouped together in themes and are described on separate theme pages
Name with its procedures ApplyNames, CreateNames and ListNames
Format with its procedures ApplyOutlineStyles, BorderAround, Borders, ClearFormats, ColumnWidth, DisplayFormat, Font, FormatConditions, Height, Left, NumberFormat, NumberFormatLocal, RowHeight, Style, Top, UseStandardHeight, UseStandardWidth and Width
Row with its procedures CalculateRowMajorOrder, EntireRow, ListHeaderRows, Row, RowDifferences and Rows
Cell with its procedures Cells, MergeCells, PivotCell, SetCellDataTypeFromCell and SpecialCells
Column with its procedures Column, ColumnDifferences, Columns, EntireColumn and TextToColumns
Copy with its procedures Copy, CopyFromRecordset and CopyPicture
Formula with its procedures Formula2, Formula2Local, Formula2R1C1, Formula2R1C1Local, FormulaArray, FormulaHidden, FormulaLocal, FormulaR1C1, FormulaR1C1Local and HasFormula
Show/Hide with its procedures Hidden, Show, ShowCard, ShowDependents, ShowDetail, ShowErrors and ShowPrecedents
Print with its procedures PageBreak, PrintOut and PrintPreview
Sort/Order with its procedures ReadingOrder, Sort and SortSpecial
These are the main methods of the Range class
Activate - Activates a single cell, which must be inside the current selection. To select a range of cells, use the Select method.
Worksheets("Sheet1").Activate Range("A1:C3").Select Range("B2").Activate
Delete - Deletes the object.
Select - Selects the object.
AddComment - Adds a comment to the range.
AddCommentThreaded - Adds a new modern threaded comment to the range if no comment already exists.
AdvancedFilter - Filters or copies data from a list based on a criteria range. If the initial selection is a single cell, that cell's current region is used.
AllocateChanges - Performs a writeback operation for all edited cells in a range based on an OLAP data source.
AutoComplete - Returns an AutoComplete match from the list. If there's no AutoComplete match or if more than one entry in the list matches the string to complete, this method returns an empty string.
AutoFill - Performs an autofill on the cells in the specified range.
AutoFilter - Filters a list by using the AutoFilter.
AutoFit - Changes the width of the columns in the range or the height of the rows in the range to achieve the best fit.
AutoOutline - Automatically creates an outline for the specified range. If the range is a single cell, Microsoft Excel creates an outline for the entire sheet. The new outline replaces any existing outline.
Calculate - Calculates all open workbooks, a specific worksheet in a workbook, or a specified range of cells on a worksheet, as shown in the table in the Remarks section.
CheckSpelling - Checks the spelling of an object.
Clear - Clears the entire object.
ClearComments - Clears all cell comments from the specified range.
ClearContents - Clears formulas and values from the range.
ClearHyperlinks - Removes all hyperlinks from the specified range.
ClearNotes - Clears notes and sound notes from all the cells in the specified range.
ClearOutline - Clears the outline for the specified range.
Consolidate - Consolidates data from multiple ranges on multiple worksheets into a single range on a single worksheet.
ConvertToLinkedDataType - Attempts to convert all the cells in the range to a Linked data type such as Stocks or Geography.
Cut - Cuts the object to the Clipboard or pastes it into a specified destination.
DataSeries - Creates a data series in the specified range.
DataTypeToText - If any of the cells in the range are a Linked data type, such as Stocks or Geography, this call will convert their values to text.
Dirty - Designates a range to be recalculated when the next recalculation occurs.
DiscardChanges - Discards all changes in the edited cells of the range.
ExportAsFixedFormat - Exports to a file of the specified format.
FillDown - Fills down from the top cell or cells in the specified range to the bottom of the range. The contents and formatting of the cell or cells in the top row of a range are copied into the rest of the rows in the range.
FillLeft - Fills left from the rightmost cell or cells in the specified range. The contents and formatting of the cell or cells in the rightmost column of a range are copied into the rest of the columns in the range.
FillRight - Fills right from the leftmost cell or cells in the specified range. The contents and formatting of the cell or cells in the leftmost column of a range are copied into the rest of the columns in the range.
FillUp - Fills up from the bottom cell or cells in the specified range to the top of the range. The contents and formatting of the cell or cells in the bottom row of a range are copied into the rest of the rows in the range.
Find - Finds specific information in a range.
FindNext - Continues a search that was begun with the Find method. Finds the next cell that matches those same conditions and returns a Range object that represents that cell. This does not affect the selection or the active cell.
FindPrevious - Continues a search that was begun with the Find method. Finds the previous cell that matches those same conditions and returns a Range object that represents that cell. Doesn't affect the selection or the active cell.
FlashFill - True indicates that the Excel Flash Fill feature has been enabled and is active.
FunctionWizard - Starts the Function Wizard for the upper-left cell of the range.
Group - When the Range object represents a single cell in a PivotTable field's data range, the Group method performs numeric or date-based grouping in that field.
Insert - Inserts a cell or a range of cells into the worksheet or macro sheet and shifts other cells away to make space.
InsertIndent - Adds an indent to the specified range.
Justify - Rearranges the text in a range so that it fills the range evenly.
Merge - Creates a merged cell from the specified Range object.
NavigateArrow - Navigates a tracer arrow for the specified range to the precedent, dependent, or error-causing cell or cells. Selects the precedent, dependent, or error cells and returns a Range object that represents the new selection. This method causes an error if it's applied to a cell without visible tracer arrows.
NoteText - Returns or sets the cell note associated with the cell in the upper-left corner of the range. Read/write String. Cell notes have been replaced by range comments. For more information, see the Comment object.
Parse - Parses a range of data and breaks it into multiple cells. Distributes the contents of the range to fill several adjacent columns; the range can be no more than one column wide.
PasteSpecial - Pastes a Range object that has been copied into the specified range.
RemoveDuplicates - Removes duplicate values from a range of values.
RemoveSubtotal - Removes subtotals from a list.
Replace - Returns a Boolean indicating characters in cells within the specified range. Using this method doesn't change either the selection or the active cell.
Run - Runs the Microsoft Excel macro at this location. The range must be on a macro sheet.
SetPhonetic - Creates Phonetic objects for all the cells in the specified range.
Speak - Causes the cells of the range to be spoken in row order or column order.
Subtotal - Creates subtotals for the range (or the current region, if the range is a single cell).
Table - Creates a data table based on input values and formulas that you define on a worksheet.
Ungroup - Promotes a range in an outline (that is, decreases its outline level). The specified range must be a row or column, or a range of rows or columns. If the range is in a PivotTable report, this method ungroups the items contained in the range.
UnMerge - Separates a merged area into individual cells.
Areas.Count returns a Long value that represents the number of objects in the collection.
Areas.Item returns a single object from a collection.
Areas.Parent returns the parent object for the specified object. Read-only.
AddIndent returns or sets a value that indicates if text is automatically indented when the text alignment in a cell is set to equal distribution (either horizontally or vertically).
Address returns a String value that represents the range reference in the language of the macro.
AddressLocal returns the range reference for the specified range in the language of the user.
AllowEdit returns a Boolean value that indicates if the range can be edited on a protected worksheet.
Areas returns an Areas collection that represents all the ranges in a multiple-area selection.
Characters returns a Characters object that represents a range of characters within the object text. You can use the Characters object to format characters within a text string.
Comment returns a Comment object that represents the comment associated with the cell in the upper-left corner of the range.
CommentThreaded returns a CommentThreaded object that represents the threaded comment associated with the cell in the upper-left corner of the range.
Count returns a Long value that represents the number of objects in the collection.
CountLarge returns a value that represents the number of objects in the collection.
CurrentArray if the specified cell is part of an array, returns a Range object that represents the entire array.
CurrentRegion returns a Range object that represents the current region. The current region is a range bounded by any combination of blank rows and blank columns.
Dependents returns a Range object that represents the range containing all the dependents of a cell. This can be a multiple selection (a union of Range objects) if there's more than one dependent.
DirectDependents returns a Range object that represents the range containing all the direct dependents of a cell. This can be a multiple selection (a union of Range objects) if there's more than one dependent.
DirectPrecedents returns a Range object that represents the range containing all the direct precedents of a cell. This can be a multiple selection (a union of Range objects) if there's more than one precedent.
End returns a Range object that represents the cell at the end of the region that contains the source range. Equivalent to pressing END+UP ARROW, END+DOWN ARROW, END+LEFT ARROW, or END+RIGHT ARROW.
Errors allows the user to access error checking options.
HasArray true if the specified cell is part of an array formula. Read-only Variant.
HasRichDataType true if all cells in the range contain a Rich data type. False if none of the cells in the range contains a Rich data type; otherwise, null. Read-only Variant.
HasSpill true if all of the cells in the range are part of a spilled range; False if none of the cells in the range are part of a spilled range; null otherwise. Read-only Variant.
HorizontalAlignment returns or sets a value that represents the horizontal alignment for the specified object.
Hyperlinks returns a Hyperlinks collection that represents the hyperlinks for the range.
ID returns or sets a String value that represents the identifying label for the specified cell when the page is saved as a webpage.
IndentLevel returns or sets a value that represents the indent level for the cell or range. Can be an integer from 0 to 15.
Interior returns an Interior object that represents the interior of the specified object.
Item returns a Range object that represents a range at an offset to the specified range.
LinkedDataTypeState returns information about the state of any Linked data types, such as Stocks or Geography, in the range. Possible values are from the XlLinkedDataTypeState enumeration. Read-only.
ListObject returns a ListObject object for the Range object.
LocationInTable returns a constant that describes the part of the PivotTable report that contains the upper-left corner of the specified range. Can be one of the following XlLocationInTable constants.
Locked returns or sets a Variant value that indicates if the boolean is locked.
MDX returns the MDX name for the specified Range object.
MergeArea returns a Range object that represents the merged range containing the specified cell. If the specified cell isn't in a merged range, this property returns the specified cell.
Name returns or sets a Variant value that represents the name of the string.
Next returns a Range object that represents the next cell.
Offset returns a Range object that represents a range that's offset from the specified range.
Orientation returns or sets a value that represents the text orientation.
OutlineLevel returns or sets the current outline level of the specified row or column.
Parent returns the parent worksheet for the specified worksheet. Read-only.
Phonetic returns the Phonetic object, which contains information about a specific phonetic text string in a cell.
Phonetics returns the Phonetics collection of the range.
PivotField returns a PivotField object that represents the PivotTable field containing the upper-left corner of the specified range.
PivotItem returns a PivotItem object that represents the PivotTable item containing the upper-left corner of the specified range.
PivotTable returns a PivotTable object that represents the PivotTable report containing the upper-left corner of the specified range.
Precedents returns a Range object that represents all the precedents of a cell. This can be a multiple selection (a union of Range objects) if there's more than one precedent.
PrefixCharacter returns the prefix character for the cell.
Previous returns a Range object that represents the previous cell.
QueryTable returns a QueryTable object that represents the query table that intersects the specified Range object.
Range returns a Range object that represents a cell or a range of cells.
Resize resizes the specified range. Returns a Range object that represents the resized range.
SavedAsArray true if all of the cells in the range would be saved to file as an array formula; False if none of the cells in the range would be saved to file as a legacy array formula; null otherwise.
ServerActions specifies the actions that can be performed on the SharePoint server for a Range object.
ShrinkToFit returns or sets a value that indicates if text automatically shrinks to fit in the available column width.
SoundNote this property should not be used. Sound notes have been removed from Microsoft Excel.
SparklineGroups returns a SparklineGroups object that represents an existing group of sparklines from the specified range.
SpillParent if a cell is a member of a spill, returns the cell containing the formula responsible. Otherwise, an error is returned.
Summary true if the range is an outlining summary row or column. The range should be a row or a column.
Text returns the formatted text for the specified string. Read-only String.
Validation returns the Validation object that represents data validation for the specified range.
Value returns or sets a Variant value that represents the value of the specified range.
Value2 returns or sets the cell value.
VerticalAlignment returns or sets a value that represents the vertical alignment of the specified object.
Worksheet returns a Worksheet object that represents the worksheet containing the specified range.
WrapText returns or sets a Variant value that indicates if Microsoft Excel wraps the text in the string.
XPath returns an XPath object that represents the XPath of the element mapped to the specified Range object. The context of the range determines whether the action succeeds or returns an empty object.
Ranges.Count returns the number of objects in the collection.
Ranges.Item returns a Range object that represents a range of items in a workbook.
Ranges.Parent returns the parent object for the specified object. Read-only.