2012-02-08 103 views
0

我的问题是这样的。在vba如何在保存文件时更改扩展名,不知道确切文件名

我使用通配符读取一系列文件名,以便文件名末尾未知,扩展名为.xls或.xlsx。因此,通配符是一样的东西:

beginningOfFilename_ *.xls *

然后我想利用每一个文件,之后我有操纵它,并用相同的名称保存它,但为.csv(逗号分隔值文件)。在vba for excel中,我可以只指定格式,它将处理扩展名,或者我必须以某种方式取消(未知)扩展名,并追加.csv

如果第二种情况是必需的,你接近这个问题,我不知道从哪里开始,因为文件名的一部分是未知的,我不知道如何操纵vba中的字符串。

我是一名VBA初学者。

任何帮助将不胜感激,谢谢。

+1

看来好像这里的答案可以工作:http://stackoverflow.com/questions/4466998/in-excel-using-vba-how-do-i -take-the-pathfilenameextension-and-change-the如果我能够指定.xls和.xlsx替换 – Brian 2012-02-08 20:35:26

+1

是的,你可以。你在哪里遇到示例代码的问题? – Fionnuala 2012-02-08 22:16:35

+0

我不知道我在替换.xls或.xlsx – Brian 2012-02-10 01:10:29

回答

5

你想要的路线是:

Mid(sFile, 1, InStrRev(sFile, ".")) & "csv" 

如果sFile与任何扩展名的文件名。

+0

我不能解决这个问题。 – Brian 2012-02-10 15:33:17

1

获取您的文件的路径和名称,无需扩展名使用。

Dim StrFileName as string 

StrFileName= split(ThisWorkbook.fullName,".xls")(0) 

现在使用StrFileName内容保存您的Csv。

[]的

+0

我不知道扩展名是否为.xls .xlsx,因此我无法做到这一点。 – Brian 2012-02-10 01:09:13

2
Split(sFile, ".")(0) & ".csv" 

其中sFile是文件名

相关问题