我一直在到处寻找,我很惊讶这在 VBA 中还不容易作为函数使用。

我需要一个函数,当调用它时,打开一个文件对话框,人们可以在其中选择 1 个文件(不是更多,只有 1 个),然后该函数将文件的位置(包括文件名+扩展名)作为字符串返回。

起初我想:“这有多难,我在 VB.NET 中真的很简单……”

提前致谢!

最佳答案

你的意思是这样?

Sub Sample()
    Dim ofD As Object
    Dim Fil

    Set ofD = Application.FileDialog(3)

    ofD.AllowMultiSelect = False
    ofD.Show

    For Each Fil In ofD.SelectedItems
        MsgBox Fil
    Next
End Sub
如果 ForAllowMultiSelect,则上述 True 循环很有用
如果只有一个文件,这是另一个示例。
Sub Sample()
    Dim ofD As Object
    Dim Fil

    Set ofD = Application.FileDialog(3)

    ofD.AllowMultiSelect = False

    If ofD.Show = False Then
        MsgBox "User Pressed Cancel"
    Else
        MsgBox ofD.SelectedItems(1)
    End If
End Sub

关于ms-access - vba 中的 OpenFileDialog 以字符串形式返回目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15971619/

10-11 20:20