Excel:VBA中的文件打开对话框,设置为详细信息视图并按修改日期排序

时间:2011-03-31 13:38:56

标签: windows excel vba dialog

我已经非常广泛地尝试谷歌了,但我希望这里的某个人可以胜出。

正如很多人(我想的)想要的,我想从Excel中生成一个File Open对话框(使用GetOpenFilename没问题)。

我认为我在尝试实现大多数人在打开对话框时想要的东西,他们想要选择一个文件,通常这是最新的那种类型?

所以说我有一个C:\ Temp dir充满.piv文件,我想抓住最后创建的。我必须打开对话框,更改为详细信息,然后单击Date Modified列,然后这将是我想要的视图和设置。

我必须像用户一样每次都这样做。有没有办法从Excel VBA设置排序和视图类型。

第9章。来自Professional Excel Development的东西给了我一些希望,但并不能让我一路走来。

看到这么奇怪,因为它一定是人们想要做的常见事情吗?

4 个答案:

答案 0 :(得分:3)

没有正式的方法可以做到这一点。有黑客但很难在各种Windows机器上工作。让这些黑客在VBA中工作听起来非常具有挑战性。

Vista中引入的新文件对话框会记住列表视图模式,列已排序等设置。我认为微软注意到人们在设计新版本时对旧版本的挫败感。

答案 1 :(得分:2)

伙计,你必须得到FileDialog!此对象提供的灵活性比GetOpenFilename(及其兄弟GetSaveAsFilename)更灵活。

它至少会让您自动进入详细信息视图。例如:

Dim fdgOpen As FileDialog
Set fdgOpen = Application.FileDialog(msoFileDialogOpen)
With fdgOpen
    .Title = "Please open a PIV file..."
    .InitialFileName = "C:\MyDocuments\MyDir\"
    .InitialView = msoFileDialogViewDetails ' Aha!!!
    .Show
End With

以上将为您节省进入详情视图所需的两次点击。我不知道最后点击“修改日期”是否可以自动化,但是嘿,至少你是2/3。

请参阅FileDialog上的VBA help。它有很多有用的属性。

答案 2 :(得分:0)

据我所知,凭借我的操作系统和办公室版本(XP with Office 2007),这是不可能的。

答案 3 :(得分:0)

对于XP和Office 2010,msoFileDialogViewDetails有效。