Vba 打开具有部分名称的excel文件

Vba 打开具有部分名称的excel文件,vba,excel,Vba,Excel,有没有一种方法可以在不知道完整路径名的情况下打开excel文件 例如: TEST\u 032212018.csv是位于C:\TEST\folder 字符串\路径的已知部分为 C:\test\folder\TEST_03 是否有一种方法可以在不使用路径其余部分的情况下打开此csv工作表(最好不使用InStr()或任何If,While循环 Function findFile(strFileStart as string) as string findFile= Dir(strFileStart

有没有一种方法可以在不知道完整路径名的情况下打开excel文件

例如:
TEST\u 032212018.csv
是位于
C:\TEST\folder

字符串\路径的已知部分为

C:\test\folder\TEST_03
是否有一种方法可以在不使用路径其余部分的情况下打开此csv工作表(最好不使用
InStr()
或任何
If,While
循环

Function findFile(strFileStart as string) as string

findFile= Dir(strFileStart & "*", vbNormal)

End Function
Echo,@Ryan Wilson关于有多个文件具有相同前缀的评论


Echo,@Ryan Wilson关于拥有多个具有相同前缀的文件的评论。

使用带有通配符的Dir来确认是否存在,如果找到,请打开它

dim fp as string, fn as string

fp = "C:\test\folder\"
fn = "test_03"

fn = dir(fp & fn & "*.csv")

if cbool(len(fn)) then
    workbooks.open fp & fn, delimiter:=","
end if

使用带有通配符的Dir确认存在,如果找到,则打开它

dim fp as string, fn as string

fp = "C:\test\folder\"
fn = "test_03"

fn = dir(fp & fn & "*.csv")

if cbool(len(fn)) then
    workbooks.open fp & fn, delimiter:=","
end if

例如,如果您有两个或多个文件名为C:\test\folder\test\u 03的文件,您如何知道您正在使用部分文件名打开正确的文件?因为只有在开始时具有特定名称的文件才是CSV文件FWIW,这听起来像是一种安全且正确的假设,直到不再是这样。y会怎么做您知道使用部分文件名打开的文件是正确的,例如,如果您有两个或更多文件的文件名中包含C:\test\folder\test\u 03?因为只有在开始时具有特定名称的文件才是CSV文件FWIW,这听起来像是一种安全且正确的假设,直到不再是这样。