gpt4 book ai didi

excel - VBA:如何在不引用文件路径的情况下要求特定的文件名?

转载 作者:行者123 更新时间:2023-12-02 22:37:33 24 4
gpt4 key购买 nike

我需要要求用户选择某个文件名,但该文件可能位于不同的文件夹或驱动器中,具体取决于使用它的人,因此路径并不重要。我尝试使用星号作为路径,但它不起作用。有什么建议么?该文件将始终命名为“2016latest.txt”、“2017latest.txt”等。我希望上传的下一个文件始终按顺序排列,这就是为什么我在代码中包含“LastYear + 1”。至于路径,文件来自哪里并不重要,重要的是名称。

Dim LastYear As String
LastYear = Worksheets("Main Menu").Cells(1, "B").Value

Dim fName As String
fName = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If fName = "False" Then Exit Sub
If fName <> "*" & LastYear + 1 & " latest.txt" Then
MsgBox "Wrong File. Please choose " & LastYear + 1 & " file."
Exit Sub
End If

最佳答案

您始终可以让用户选择文件:

Sub GetFile()
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(FileFilter:="All Files (*.*), *.*", Title:="Select File To Be Opened")
Debug.Print fNameAndPath
Debug.Print Dir(fNameAndPath)
If Dir(fNameAndPath) = "yourFileName" Then
'correct file
else
'wrong file
endif
End Sub

或者您可以在文件系统中搜索该特定文件,但这可能会困难得多(权限、巨大的文件系统等)。正如@Masoud 所说,如果路径不在当前文件夹中,则需要提供路径。

编辑:如果您希望用户仅选择文本文件,则替换

FileFilter:="All Files (*.*), *.*"

FileFilter:="Text Files (*.txt), *.txt"

关于excel - VBA:如何在不引用文件路径的情况下要求特定的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43478891/

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