XL: Goto Method Fails When Custom Dialog Box Visible

ID: Q137807

The information in this article applies to:

SYMPTOMS

When you run a Microsoft Visual Basic for Applications macro that uses the Application.Goto method to jump to a cell or range of cells, you may receive one of the following error messages:

   Run time error '1004'
   Goto method of Application class failed

   -or-

   Run-time error '1004':
   Method 'Goto' of object '_Application' failed

CAUSE

This behavior occurs when you use code similar to the following when a custom dialog box is active:

    Application.Goto _
         Reference:=Workbooks("Book1").Sheets("Sheet1").Range("C5"), _
         Scroll:=True

NOTE: This does not occur when you use a custom UserForm in Microsoft Excel 97 or Microsoft Excel 98 Macintosh Edition.

WORKAROUND

Microsoft provides programming examples 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. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

   http://www.microsoft.com/support/supportnet/refguide/

To work around this problem, use macro code similar to the following example.

Sample Visual Basic Procedure

   ' Select the appropriate section of the worksheet.
   ' (This code has similar results to the Reference:= argument
   ' that you use with the Goto command.)
   Workbooks("Book1").Activate
   Sheets("Sheet1").Select
   Range("C5").Select

   ' Scroll such that the selected cell is in the top left corner of the
   ' active window. (This code has similar results to the Scroll:=True
   ' argument that you use with the Goto command.)
   ActiveWindow.ScrollColumn = ActiveCell.Column
   ActiveWindow.ScrollRow = ActiveCell.Row

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article.

Additional query words: 5.00 5.00a 5.00c 7.00 8.00 XL97 XL98 XL7 XL5 dialogsheet vb dialogbox

Keywords          : kberrmsg kbprg kbdta kbdtacode PgmOthr KbVBA 
Version           : WINDOWS:5.0,5.0c,7.0,97; MACINTOSH:5.0,5.0a,98
Platform          : MACINTOSH WINDOWS
Issue type        : kbbug

Last Reviewed: May 17, 1999