Excel.Tips.Net Welcome toExcel.Tips.Net

Helpful Links

Tips.Net Home
ExcelTips Home
Ask an Excel Question
Make a Comment

Tips.Net Store

ExcelTips FAQ
ExcelTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
ExcelTips Site

Newest Tips

Converting to Octal

Filtering Columns for Unique Values

Printing Multiple Worksheets on a Single Page

Changing the Default Font

Creating a Drawing Object

Determining a Value of a Cell

Understanding Macros

 

Searching by Columns, by Default

Summary: Do you often want to search through a worksheet by column rather than by row? Excel defaults to searching by row, of course, so you need to look for a way to instruct it to search in the order you prefer. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, Excel 2003, and Excel 2007.)

When you use the Find command, Excel defaults to "search by row" as the order it will use in looking for information. Your needs may vary, however; you may have a need to search by column most of the time. You can certainly change this setting when you start the search, but wouldn't it be nice to change the default so that Excel starts out by searching columns?

Unfortunately, there is no setting that you can specify so that Excel remembers how you want to do your search. You can, however, use a macro to set the default searching order. Consider the following example:

Private Sub Workbook_Open()
    On Error Resume Next
    Cells.Find("", , , , xlByColumns, , , False) = True
End Sub

This macro does nothing but change the search order to columns. After it is run (in other words, after you open the workbook), subsequent searches will default to searching by column.

The fact that Excel remembers the last-used search order for all subsequent searches during the current Excel session can be used to your advantage. The following macro does essentially the same thing as the previous example, except it also closes the workbook:

Sub Auto_Open()
    Worksheets("sheet1").Cells.Find _
      What:="", _
      After:=ActiveCell, _
      LookIn:=xlFormulas, _
      LookAt:=xlWhole, _
      SearchOrder:=xlByColumns, _
      SearchDirection:=xlNext, _
      MatchCase:=True

    ThisWorkbook.Close savechanges:=False
End Sub

If you put this macro into a blank workbook and then saved the workbook in your xlStart folder, it would be opened every time you start Excel. When opened, the workbook does a single search using the settings you want, and then closes itself. The net result is that your search order is set to columns, and subsequent searches will occur the way you want them to.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (3913) applies to Microsoft Excel versions: 97 | 2000 | 2002 | 2003 | 2007

Tame Your Data! ExcelTips: Filters and Filtering provides all the details necessary to let you manage large sets of data with confidence and ease. Its information-packed pages demonstrate how to use the two types of filters provided by Excel: AutoFilters and advanced filters.
 
Check out ExcelTips: Filters and Filtering today!