Please Note: This article is written for users of the following Microsoft Excel versions: 97, 2000, 2002, and 2003. If you are using a later version (Excel 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Excel, click here: Finding the Last-Used Cell in a Macro.
Written by Allen Wyatt (last updated August 5, 2022)
This tip applies to Excel 97, 2000, 2002, and 2003
If you are working in a worksheet, you know that you can press Ctrl+End to jump to the last-cell in the worksheet. What the shortcut does is to choose the cell that represents the intersection of the last column containing data and the last row containing data. Thus, if the last column in which you have data is column F, and the last row in which you have data is row 27, then Ctrl+End will select cell F27.
To do this same task from a macro, you use a very simple command, as shown here:
Sub FindLast1() ActiveCell.SpecialCells(xlLastCell).Select End Sub
This is functionally the same as pressing Ctrl+End. However (and this is a big issue), Excel doesn't dynamically keep track of which rows and columns are the last used in a worksheet. For instance, let's suppose that you open a workbook, press Ctrl+End, and you are taken to cell F27. If you then delete 3 rows and one column, you would expect that Ctrl+End would take you to cell E24. It doesn't; it still takes you to cell F27, until you save the workbook and reopen it.
This same problem affects the macro code shown in the FindLast1 macro; it will take you to the "highest" cell, regardless of which columns or rows you have deleted during the current session.
What's needed is a way to reset the "last cell" indicator, just as if you had saved and reopened the workbook. There is no intrinsic macro command that does that, but there is a way to force Excel to do the reset. All you need to do is adjust the macro as follows:
Sub FindLast2() x = ActiveSheet.UsedRange.Rows.Count ActiveCell.SpecialCells(xlLastCell).Select End Sub
This macro always takes you to the proper cell—it works as you would expect Ctrl+End to always work. It works because apparently Excel, when it calculates the Count property for the number of rows in the worksheet, always resets the "last cell" indicator.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (2271) applies to Microsoft Excel 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Excel (Excel 2007 and later) here: Finding the Last-Used Cell in a Macro.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!
Do you need to find cells that are formatted with a particular color? How you accomplish this task depends on your ...
Discover MoreImport information from a program external to Excel, and your numbers may be treated as text because of the way that the ...
Discover MoreYou can hide a bunch of worksheets at the same time, but Excel makes it impossible to unhide a bunch at once. You can, ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2018-04-13 15:24:36
Jordan
This doesn't actually work in Excel 2016.
Got a version of Excel that uses the menu interface (Excel 97, Excel 2000, Excel 2002, or Excel 2003)? This site is for you! If you use a later version of Excel, visit our ExcelTips site focusing on the ribbon interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments