如何在vba excel中打开一个带有可变扩展名的文件

我必须提出一个VBA从Excel中打开一个CSV问题是文件有一个格式:

constan_name_file。 YYY

例如

file1.124514(第1天)

file1.144521(第2天)

file1.152132(另一天)

名称文件是一个常量,但YYY是可变的,但里面的文件是一个CSV。 那有可能打开它?

在Excel 2007中打开csv文件时,我遇到了格式问题。在excel论坛中只查找一个可能的解决scheme。 将文件扩展名从csv更改为txt。

试图尽可能地做一个函数。 这里是:

选项显式

Function ChangeFileExt(filnamn As String,extensionOld,extensionNew)
昏暗的旧名称,新名称作为string

oldname = ThisWorkbook.Path&“\”&filnamn&“。” &extension老

newname = ThisWorkbook.Path&“\”&filnamn&“。” &extensionNew
名字oldname作为新名字

结束function

” …………………………………………. …………………………

Sub change_extension()

“目标:希望保持csv格式在workbook.open

'将文件从filename.csv重命名为filename.txt
'打开txt文件
' 处理数据
'如果有必要,重命名为csv-file

Dim csv,txt As String

csv =“csv”
txt =“txt”

调用ChangeFileExt(“file_name_to_change”,csv,txt)'省略file_name_to_change中的扩展名

各种代码

调用ChangeFileName(“file_name_to_change”,txt,csv)'将文件名更改为原始名称

结束小组

为什么不强制打开它作为一个CSV文件

 Workbooks.Open Filename:=name, Format:=2 

这里的2指定该文件是用逗号分隔的http://msdn.microsoft.com/en-us/library/office/ff194819.aspx

感谢使用通配符,最后我得到了代码。

 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 

是的,请尝试下面的代码:

 dim sFileName as string dim sExtension as string sExtension="YYY" sfilename=constan_name_file & "." & sExtension workbooks.open sfilename, Format:=2