XL97: ROW And COLUMN Functions Are Not Recalculated

Last reviewed: February 12, 1998
Article ID: Q166461
The information in this article applies to:
  • Microsoft Excel 97 for Windows

SYMPTOMS

When you use the ROW or COLUMN function in your worksheet, the value returned by the function may not be recalculated when you insert a new row or column.

WORKAROUND

To work around this problem, use one of the following methods.

Method 1

To use this method, follow these steps:

  1. Activate a cell containing a formula that includes either the ROW or COLUMN function.

  2. Press F2.

  3. Press ENTER.

This method reenters the formula and returns the correct result. Repeat the steps in this method for each cell that contains a formula that includes the ROW or COLUMN function.

Method 2

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support engineers can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

You can create custom functions in Visual Basic for Applications to use in place of the ROW and COLUMN functions that are built into Microsoft Excel.

To do this, use the following macro:

   Function MyRow(Optional cell)
   Application.Volatile
   ' Check for cell argument.
   If IsMissing(cell) Then
       MyRow = Range(Application.Caller.Address).Row
   Else
       MyRow = Range(cell.Address).Row
   End If
   End Function

   Function MyColumn(Optional cell)
   Application.Volatile
   ' Check for cell argument.
   If IsMissing(cell) Then
       MyColumn = Range(Application.Caller.Address).Column
   Else
       MyColumn = Range(cell.Address).Column
   End If
   End Function

STATUS

Microsoft has confirmed this to be a problem in Microsoft Excel 97 for Windows. This problem was corrected in Microsoft Excel 97 for Windows, Service Release 1 (SR-1).

REFERENCES

For more information about writing custom functions, click the Index tab in Visual Basic for Applications Help, type the following text

   functions, Function procedures

and then double-click the selected text to go to the "Writing a Function Procedure" topic.
Keywords          : xlformula
Version           : WINDOWS:97
Platform          : WINDOWS
Issue type        : kbprb


================================================================================


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: February 12, 1998
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.