Microsoft KB Archive/51721

{|
 * width="100%"|

Getting PARSE to Guess in an Excel Macro

 * }

-

The information in this article applies to:


 * Microsoft Excel for Windows, versions 2.x, 3.0, 4.0, 5.0
 * Microsoft Excel for OS/2, versions 2.2, 3.0

-

Microsoft Excel 2.x and 3.0
The Data Parse command has a guess feature that, when activated, makes an intelligent guess as to where the breaks should be made in the parse data. The macro-equivalent command, PARSE, has no such option. The following macro code segment takes the active cell or cells and parses them using Excel's guess feature:

  =SEND.KEYS(&quot;%(g)~&quot;) =PARSE?

The PARSE? command can be used to bring up the standard Data Parse dialog box. Using the SEND.KEYS(&quot;%(g)~&quot;) command places the key sequence ALT+G, ENTER into the Windows keyboard buffer. When PARSE? is executed, the keyboard buffer is polled for the next available piece of information. Because the ALT+G, ENTER sequence is already in the keyboard buffer, no dialog box is displayed, but the guess feature is executed.

Microsoft Excel 4.0
Microsoft Excel version 4.0 has the ability to guess built-in, so the SEND.KEYS workaround is not needed in an Microsoft Excel version 4.0 macro.

To say that this problem has been fixed in version 4.0 is somewhat misleading. You cannot force the Parse function to guess again once you have used it. In other words, once you use the function it will attempt to revert to the guess it made when it was first used, for all subsequent uses. You cannot force it to make a new guess in the same session, even if you leave the parse_text (delimiter) argument blank.

It is true that when you leave the parse_text (delimiter) argument blank, it forces Microsoft Excel to guess. However, that in itself is not what the guess button does. When you do a Data Parse manually, Microsoft Excel will always guess on the first parse. The guess button is only used on subsequent parses in the same session, when the delimiter has changed and you need Microsoft Excel to render a new guess. The Guess button is really a &quot;Guess Again&quot; button. Unfortunately, the Parse function has no argument to force Microsoft Excel to guess again, so you still must use this workaround.

Microsoft Excel 5.0
The information above also applies to Microsoft Excel version 5.0 only when using version 4.0 macro language. The preferred method, however, is to use the text-to-columns function.