gpt4 book ai didi

即使在取消之后,Excel VBA 也会继续出现 'Open File'

转载 作者:行者123 更新时间:2023-12-04 20:15:10 25 4
gpt4 key购买 nike

好的,就是这样。在过去的 3 或 4 个月中,我做了很多编码,学到了很多东西,但是,我不明白为什么当弹出窗口出现时,当我最后点击取消时,这段代码仍然会打开一个文件,显示我的过滤的文件名。任何建议将不胜感激。

 Sub OpenByPartialName()

' Returns popup window with only filtered filenames matching
' Partial Filename input

Dim WB As Workbook
Dim Ans As String
Dim MyFile As String
Dim path As String

' Folder Path Name for Forms
path = ("S:\Forms Folder\")

Ans = InputBox("Enter Partial filename Filter", "Open File With Partial Name Filter")

MyFile = Dir("S:\Forms Folder\" & "*" & Ans & "*.xls")

MyFilter = path & "*" & Ans & "*.xls"

With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = MyFilter

If .Show = 1 Then
MyFile = .SelectedItems(1)
End If
End With

On Error Resume Next
Set WB = Workbooks.Open(MyFile)

End Sub

最佳答案

那将是一个肮脏的黑客,但如果你有一个 Else这里的分支:

If .Show = 1 Then
MyFile = .SelectedItems(1)
Else
MyFile = vbNullString
End If

...实际打开文件的代码可以验证 MyFile在尝试之前是否为空:
On Error Resume Next
If MyFile <> vbNullString Then Set WB = Workbooks.Open(MyFile)

也就是说,我认为您应该在这里至少处理错误 53(“找不到文件”),而不是仅仅将所有错误隐藏在地毯下。

还有 WB不使用引用。也许 Sub应该是 Function返回打开的工作簿,或 Nothing如果打开失败?

关于即使在取消之后,Excel VBA 也会继续出现 'Open File',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com