VBA Range GoTo: Jump to a Cell or Range in Excel

VBA & macros · Updated November 3, 2026

VBA Range GoTo: Jump to a Cell or Range in Excel

To jump to a cell or range with VBA, use Excel’s Application.Goto method, for example: Application.Goto Reference:=Worksheets("Sheet1").Range("B5"), Scroll:=True. There is no Range.GoTo method; Application.Goto selects the specified reference and can scroll the worksheet to show it.

What “Range GoTo” means in VBA

People searching for “VBA range goto” usually want a macro to move Excel’s selection to a particular cell, range, or named range. The VBA method for that task belongs to the Excel Application object, not to a Range object. You supply the target as the Reference argument, and optionally set Scroll to control whether Excel moves the window to display it.

A Range object represents one cell or a group of cells. For example, Range("B5") represents cell B5, while Range("B5:D10") represents a rectangular block. Passing one of these objects to Application.Goto is often safer than assembling a text address, especially when a target is on a particular worksheet.

There is a similarly named VBA GoTo statement, but it has a different purpose: it changes the execution path inside a procedure by jumping to a code label. It does not navigate Excel to a cell. The capitalization can look similar, but Application.Goto is an Excel object-model method and GoTo is a VBA control-flow statement.

Basic syntax and a working example

The method’s essential form is Application.Goto Reference:=target. The optional Scroll:=True argument asks Excel to scroll the window so the target is visible. The following macro jumps to B12 on a worksheet named Report in the workbook that contains the macro:

Sub GoToReportTotal()
    Dim target As Range

    ' Identify the destination in the workbook containing this macro.
    Set target = ThisWorkbook.Worksheets("Report").Range("B12")
    Application.Goto Reference:=target, Scroll:=True
End Sub

Before running a macro, save a copy of the workbook. VBA changes cannot be reversed with Ctrl+Z, so a backup matters if the procedure does more than simply navigate. To run the example, open the Visual Basic Editor, insert the procedure in a standard module, return to Excel, and run it from the Macro dialog or the editor. The Report worksheet must exist in the workbook, or VBA will raise an error when it tries to find it.

The example uses ThisWorkbook, meaning the workbook containing the code. That is useful when a macro might be launched while another workbook is active. By contrast, ActiveWorkbook refers to whichever workbook is currently active, which may not be the one containing the macro.

Choose whether Excel should scroll

The Scroll argument changes how the destination is displayed, not which cells are selected. With Scroll:=True, Excel moves the worksheet window to bring the destination into view. This is useful for navigation macros, especially when the target is far from the current view. With Scroll:=False, Excel navigates without asking it to scroll the window; the target may therefore be outside the visible portion of the sheet.

If you omit Scroll, Excel uses its default behavior. For a macro intended to guide a person to a distant cell, explicitly writing True makes the intent clear. If the target is already visible and you do not want the view repositioned, use False. These settings do not freeze the screen or permanently change the worksheet’s layout; they affect the navigation performed by that call.

Go to a range on another worksheet

Include the worksheet in the object reference when the destination is not on the current sheet. This tells VBA exactly where to go and avoids depending on whichever tab happens to be active:

Sub GoToInputBlock()
    Dim target As Range

    ' Specify both the worksheet and the destination cells.
    Set target = ThisWorkbook.Worksheets("Inputs").Range("C4:F12")
    Application.Goto Reference:=target, Scroll:=True
End Sub

Application.Goto can activate the destination sheet as part of navigating to a reference on another worksheet. The worksheet name in the example must match the tab name. If it contains spaces or punctuation, the object-reference form shown here still works without manually adding apostrophes around a sheet name in an address string.

For workbook links or other special references, take care to identify which workbook owns the target. A worksheet object qualified through ThisWorkbook is unambiguous for a macro stored in that workbook. If your intended destination is in a different workbook, qualify it through that workbook’s object instead; do not assume ThisWorkbook means the workbook currently in front of you.

Use a named range or a calculated destination

A defined name can make a navigation macro easier to understand than a hard-coded cell address. For example, if the workbook has a defined name called Sales_Total, you can pass that name as the reference:

Sub GoToSalesTotal()
    ' Navigate to the defined name Sales_Total.
    Application.Goto Reference:="Sales_Total", Scroll:=True
End Sub

Excel’s name scope can affect which definition a name refers to: a name may be workbook-scoped or limited to one worksheet. If a name is missing or ambiguous, check Formulas > Name Manager and confirm its scope and “Refers to” address. A missing name can cause a run-time error.

The destination can also be computed before the call. For instance, a macro can find the last used row in a known column, assign the corresponding cell to a Range variable, and pass that variable to Application.Goto. The important design point is to calculate and qualify the reference deliberately. “Last used row” logic depends on what counts as used data in the workbook, so a macro should not treat a blank, formatted cell as a meaningful record unless that is intended.

Application.Goto compared with Select and Activate

Application.Goto is useful when the goal is navigation: it can take the user to a reference and optionally scroll the window. Range.Select selects a range, but it generally requires that range’s worksheet to be active first. Range.Activate makes a cell active within a selection; it is not a general replacement for moving to a reference on another sheet.

For example, target.Select may fail if target is on a worksheet that is not active. Calling Application.Goto Reference:=target is a more direct way to navigate to a range on another sheet. Still, selecting cells is not necessary for most calculations or data changes. Code that reads or writes through a fully qualified reference is usually less dependent on the active sheet and selection.

Use navigation when a person needs to see a destination, such as a form’s input area or a report total. For data processing, prefer direct references such as target.Value = 0 over selecting the cell and then acting on Selection. This reduces the chance that an unexpected active workbook, worksheet, or selection affects the result.

Common errors and practical fixes

A navigation macro is short, but its object references can still fail. Check these common causes when it stops with an error or goes somewhere unexpected:

  • Misspelled sheet name: Confirm the tab name exactly matches the string passed to Worksheets. Sheet names are not interchangeable with a worksheet’s VBA code name.
  • Wrong workbook: Use ThisWorkbook for the workbook containing the macro, or explicitly identify another open workbook when that is the intended destination.
  • Invalid or missing name: Check the defined name in Formulas > Name Manager, including whether it is workbook-scoped or worksheet-scoped.
  • Trying to call Range.GoTo: Use Application.Goto instead. A Range object does not provide a GoTo method.
  • Using the wrong kind of GoTo: GoTo LabelName in VBA jumps to a label in code; it does not select an Excel cell.
  • Assuming a hidden destination will be visible: A hidden worksheet or hidden rows and columns can affect what a user sees. Unhide the relevant area if the macro is meant to guide someone visually.

When debugging, inspect the reference before the navigation line. In the Visual Basic Editor, step through the procedure with F8 and verify that the worksheet and range resolve as expected. A clear, qualified reference is generally more helpful than trying to repair a navigation call with repeated selections.

Keyboard Go To and Excel platform notes

You can navigate without VBA by opening Excel’s Go To dialog. In Excel for Microsoft 365 on Windows, press Ctrl+G or F5, enter a cell address or defined name, and choose OK. On a Mac, Control+G opens Go To in Excel; depending on the keyboard and function-key settings, you may need Fn with a function key. The dialog is handy for occasional navigation, while a macro is useful when the destination is part of a repeatable task.

Excel for the web does not run VBA macros. You can use the web app’s available navigation tools, but to run this VBA procedure, open the workbook in the desktop Excel application. Excel for Mac supports VBA, though keyboard behavior and some interface details can differ from Windows. The object-model code shown here uses standard Excel VBA navigation; it does not depend on a Windows-only keyboard shortcut.

Frequently Asked Questions

Is there a Range.GoTo method in Excel VBA?
No. To navigate to a range, call Application.Goto and pass the range as the Reference argument. Range objects have methods such as Select and Activate, but not GoTo.

How do I go to a cell on another sheet with VBA?
Build a qualified range using the worksheet, then pass it to Application.Goto. For example, use ThisWorkbook.Worksheets("Inputs").Range("C4") as the reference. This avoids relying on the active worksheet to identify the destination.

What does Scroll:=True do?
It tells Excel to scroll the window so the target reference is brought into view. It does not change the target address. Use Scroll:=False when you do not want the call to reposition the visible worksheet area.

What is the difference between VBA GoTo and Application.Goto?
The VBA GoTo statement transfers execution to a label inside a procedure. Application.Goto navigates Excel to a cell, range, or other reference. They solve different problems despite the similar names.

Can I use Go To without writing a macro?
Yes. In desktop Excel, Ctrl+G or F5 on Windows opens the Go To dialog; Control+G works on Mac. Enter a cell address or defined name to navigate manually. Excel for the web does not execute VBA, so use desktop Excel if you need to run the macro.

Related

Try it: the Column Letter to Number: aA is 27, XFD is 16,384. Converts both ways.

More in VBA & macros

Sources: Function behaviour and menu paths: Microsoft Support documentation for Excel. Method & sources

Spotted an error in this guide? Let us know.