获取并编辑文件名

时间:2013-07-22 14:22:04

标签: vba excel-vba directory excel

我想要检索txt文件,然后编辑文件名(将“转换后”添加到文件名中)和扩展名(从 .r01 .txt的)。 这样做的目的是让我知道txt文件是否已被转换

到目前为止,这是我的代码;


Dim infilename As Variant

  

infilename = Application.GetOpenFilename("Text & r01 Files (*.r01;*.txt),*.r01;*.txt", , "Open Neutral File", "OPEN")

2 个答案:

答案 0 :(得分:2)

InStrRev将允许您找到最后一个.并将其从字符串

中删除
FileNameWithoutExt = Left(Filename, InStrRev(Filename, ".") - 1)

工作簿FullName:

的示例
?activeworkbook.FullName
  

Z:\ Individual Folders \ Sean \ transfers2.xlsx

?Left(activeworkbook.FullName, InStrRev(activeworkbook.FullName, ".") - 1)
  

Z:\ Individual Folders \ Sean \ transfers2


您可以将它们包装在一个函数中,以使它们更易于使用。我还添加了一个只提供文件名的函数,而不是带有完整路径的函数

Function FileNameOnly(fName)
'Changes "C:\Path\Filename.ext" to "Filename.ext"
FileNameOnly=mid(fName,instrrev(fName,"\")+1)
End Function

Function DelExt(fName)
'Changes "C:\Path\Filename.ext" to "C:\Path\Filename"
DelExt=left(fName,instrrev(fName,".")-1)
End Function

然后,您可以在程序中使用这些内容,使用类似NewFileName=DelExt(infilename) & "CONVERTED.txt"

的行

答案 1 :(得分:0)

我设法使用Sean Cheshire的部分代码获得了我想要的东西。

   Dim newFileName As Variant
   newFileName = Left(inFileName, (InStrRev(inFileName, ".") - 1)) & "CONVERTED.txt"