如何在vba excel中打开具有变量扩展名的文件

如何在vba excel中打开具有变量扩展名的文件,excel,vba,Excel,Vba,我必须使用vba从excel打开CSV。问题是文件的格式: constan\u name\u文件。YYY 对于示例 文件1.124514(第1天) 文件1.144521(第2天) 文件1.152132(另一天) 名称文件是一个常量,但YYY是可变的,但其中的文件是一个CSV。可以打开它吗 为什么不强制将其作为CSV文件打开 Workbooks.Open Filename:=name, Format:=2 此处,2指定文件以逗号分隔 为什么不强制将其作为CSV文件打开 Workbooks.Ope

我必须使用vba从excel打开CSV。问题是文件的格式:

constan\u name\u文件。YYY

对于示例

文件1.124514(第1天)

文件1.144521(第2天)

文件1.152132(另一天)


名称文件是一个常量,但YYY是可变的,但其中的文件是一个CSV。可以打开它吗

为什么不强制将其作为CSV文件打开

Workbooks.Open Filename:=name, Format:=2
此处,2指定文件以逗号分隔

为什么不强制将其作为CSV文件打开

Workbooks.Open Filename:=name, Format:=2
此处,2指定文件以逗号分隔
是,请尝试以下代码:

dim sFileName as string
dim sExtension as string

sExtension="YYY"
sfilename=constan_name_file & "." & sExtension

workbooks.open sfilename, Format:=2

是,请尝试以下代码:

dim sFileName as string
dim sExtension as string

sExtension="YYY"
sfilename=constan_name_file & "." & sExtension

workbooks.open sfilename, Format:=2

感谢使用通配符,我终于得到了代码

sub GetFiles(direc As String, fich As String) 

    Dim strFileName As Variant

    strFileName = dir(direc & "\" & fich & ".******")

       If Len(strFileName) > 0 Then
        'open
       end if

End sub

感谢使用通配符,我终于得到了代码

sub GetFiles(direc As String, fich As String) 

    Dim strFileName As Variant

    strFileName = dir(direc & "\" & fich & ".******")

       If Len(strFileName) > 0 Then
        'open
       end if

End sub

在Excel2007中打开csv文件时,我在保留格式方面遇到问题。在excel论坛中四处查看,只找到一个可能的解决方案。将文件扩展名从csv更改为txt

试图使函数尽可能通用。这是:
在Excel2007中打开csv文件时,我在保留格式方面遇到问题。在excel论坛中四处查看,只找到一个可能的解决方案。将文件扩展名从csv更改为txt

试图使函数尽可能通用。这是:
使用
DIR
中的通配符打开文件。试一试,如果你被卡住了,只要把你试过的代码贴出来,我们就从那里拿出来,我会检查的!坦斯克!使用
DIR
中的通配符打开文件。试一试,如果你被卡住了,只要把你试过的代码贴出来,我们就从那里拿出来,我会检查的!坦斯克!YYY每天都会更改文件1.114525第二天的文件1.145245另一天的文件1.45145,因此这就是分配Extension变量的方式。。。。例如,您可以传入要使用的扩展名,或者,正如Siddharth Rout所建议的,使用带有通配符的DIR函数来获取文件名,但我永远不知道该变量值是什么,。您需要使用FileSystemObject以使用通配符获取所有文件的名称,然后才能打开正确的文件。YYY每天更改文件1.114525第二天更改文件1.145245另一天更改文件。45145因此,您可以这样分配Extension变量。。。。例如,您可以传入要使用的扩展名,或者,正如Siddharth Rout所建议的,使用带有通配符的DIR函数来获取文件名,但我永远不知道该变量值是什么,。您需要使用FileSystemObject使用通配符获取所有文件的名称,然后才能打开正确的文件。但是name=“Full path+name File”它会打开一个类似file1.xlsx或file2.csv的文件。问题是我的扩展名是服务器创建文件的时间,它是一个变量numberright。。。最好的做法是浏览文件夹中的每个文件(使用文件夹对象),获取文件并拆分其名称->删除扩展名并向其中添加您自己的扩展名。因此,如果文件名为file214.21Jan13,则使用“点”作为分隔符,并将文件重命名为file214.csv。然后使用“普通打开”使用vba打开它。但是name=“Full path+name File”它打开的文件类似于file1.xlsx或file2.csv。问题是我的扩展名是服务器创建文件的时间,它是一个变量正确。。。最好的做法是浏览文件夹中的每个文件(使用文件夹对象),获取文件并拆分其名称->删除扩展名并向其中添加您自己的扩展名。因此,如果文件名为file214.21Jan13,则使用“点”作为分隔符,并将文件重命名为file214.csv。然后使用“正常打开”使用vba打开它。