VB弹出打开对话框,选择文件

有这样一个思路,form1里有个command1,点击它就弹出一个“打开”对话框,像图那样的一个对话框,然后从电脑中选择我需要的excel文件,源代码怎样写?
PS:如果在command1里直接写打开某路径下的excel文件方式我会,现在需要的是有个“打开”对话框!提供示例追加分数!
怎么图片没传上来么?

'添加一个CommonDialog控件
'通用声明
Private Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOW = 5

'按钮事件
Private Sub Command1_Click()
On Error GoTo userCanceled
With CommonDialog1
.CancelError = True
.Flags = cdlOFNHideReadOnly Or cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNNoDereferenceLinks
.Filter = "excel文件(*.xls)|*.xls"
.ShowOpen
ShellExecute Me.hwnd, "open", .FileName, "", "", SW_SHOW
End With
userCanceled:
End Sub追问

可不可以添加一行代码,使打开的excel为隐藏的?

追答

是更改excel文件的属性为隐藏,还是打开的excel窗口为隐藏的?

追问

打开的excel窗口为隐藏的

追答

'通用声明,加到声明的位置
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const SW_HIDE = 0

'隐藏指定窗口,加到End With上面
Dim WinWnd As Long
WinWnd = FindWindow(vbNullString,.FileTitle)
If WinWnd 0 Then
ShowWindow WinWnd, SW_HIDE
End If

追问

隐藏不了啊,还是显示出来了

追答

WinWnd = FindWindow(vbNullString,.FileTitle)
哦,把上面这句改成
WinWnd = FindWindow(vbNullString,"Microsoft Excel - " & .FileTitle)
试试

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-12
楼上的是对的,不过可以直接添加一个commondialog控件,这样代码只有两句,这问题怎么问两遍?
相似回答