GetOpenFilename and filter "*."

M

Martin Brown

I have encountered an odd quirk in GetOpenFilename in Excel 2003

It works fine provided that you never have to use the filter for files
with no file extension. If you attempt to filter on "*." the entry is
completely ignored!
(No error message or syntax error parsing it just vanishes from the
listbox)

Filename = Application.GetOpenFilename("All files
(*.*),*.*,Bug(*.),*.,Other (*.csv),*.csv", manuf, "Open CSV file")

Displays a listbox with just two entries "All files, Other". The parser
appears to have ignored the Bug entry completely.

Filename = Application.GetOpenFilename("All files
(*.*),*.*,Bug(*.?),*.?,Other (*.csv),*.csv", manuf, "Open CSV file")

Displays a listbox with 3 entries as expected, but alas "*.?" does not
match our hard to find "*." filenames.

Filename = Application.GetOpenFilename("All files (*.*),*.*,Bug(*.
),*. ,Other (*.csv),*.csv", manuf, "Open CSV file")

Displays a listbox with 3 entries as expected. Unfortunately ". " does
not match a file with no extension either.

Anyone see a way to make GetOpenFilename filter for ("*.") ?

I tried the knowledgebase but it didn't seem to have anything on this.

Thanks for any enlightenment or workarounds. "*.*" sees the relevant
files, but is not especially convenient as it sees everything else as
well.

Regards,
 
L

Lazzzx

Hi,
It seems to me that it is not possible to make a filter like that. However,
if you enter "*." in the Filename box (after the Open dialog box is opened),
and press enter, then the files will be filtered according to that entry.
Admitted, this is not a perfect workaround to the Question, but useful
anyway.
regards,
Lazzzx
 
M

Martin Brown

Lazzzx said:
Hi,
It seems to me that it is not possible to make a filter like that.

I know :(
The syntax is valid, files with a null extension are valid even in DOS
8.3 naming.
However, if you enter "*." in the Filename box (after the Open dialog
box is opened), and press enter, then the files will be filtered
according to that entry. Admitted, this is not a perfect workaround to
the Question, but useful anyway.

Doesn't really help. The source data happens to have no file extension.
The purpose of the macro with a filter was to protect jobsworths from
seeing everything else in their working directory. Telling them to type
*. into the filename box is really no different to what happens at
present.

I found an even nastier gotcha after this. If you have two files in the
same directory with the same main name a null and an XLS file extension
and try to open the null extension one programmatically with the
following code:

Workbooks.OpenText Filename:=NEWBUG., Origin:=xlMSDOS, _ StartRow:=1,
DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False,
Comma:=True, Space:=False, Other:=False

and the files are

ASCII CSV file: NEWBUG.
XL file: NEWBUG.xls

Guess which one gets opened! The XLS file of course!!!!
(And there is a trailing dot on the ASCII filename)

Regards,
Martin Brown
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top