【发布时间】:2012-11-27 21:01:24
【问题描述】:
以前在 Windows XP 上运行的打开/保存对话框在我的 64 位 Windows 7 上不再运行。我听说“MSComDlg.CommonDialog”与 64 位不兼容。这是我的旧代码:
' Sub to show open/save dialog
SUB OpenSave (varOpenSaveInputBox, varOpenSaveType, varOpenSaveFilter)
' Create object
SET objComDlg32 = CreateObject("MSComDlg.CommonDialog")
' Set memory buffer
objComDlg32.MaxFileSize = 260
' Set filter
objComDlg32.Filter = varOpenSaveFilter
' Show dialog
IF varOpenSaveType = 0 Then
objComDlg32.ShowOpen
ELSE
objComDlg32.ShowSave
End IF
' Get filename from dialog
strOpenSave = objComDlg32.FileName
' Check IF dialog is cancelled
IF strOpenSave <> vbNullString Then
' Set to variable
objOpenSave.SetContent strOpenSave, TRUE
End If
END SUB
如果您的回答比“使用这个!”更具体,我将不胜感激。 DLL 和 OCX 并不是我真正的强项。谢谢。
【问题讨论】:
-
“不再有效”到底是什么意思?我觉得这不是Win7 64位的问题。你有什么office版本?你必须有开发者版。
-
什么语言? vba、vbscript 和 activex 都是不同的技术
-
@DanielDusek 我不在办公室使用它,而是在 QlikView 中使用它。我需要一个在 64 位 win7 中工作的 openfile 对话。如果您知道 'MSComDlg.CommonDialog 的替代品,我将不胜感激。
-
@Sean Cheshire vbscript.
-
这是一个很老的问题,你可能已经得到了答案,但对于那些可能已经在寻找相同答案的人来说——唯一的“通用”方法是使用 Shell.Application 中的 BrowseForFolder 方法( msdn.microsoft.com/en-us/library/windows/desktop/…)