0

我正在寻找一个 txt 文件,然后编辑文件名(将“转换”添加到文件名)和扩展名(从.r01.txt)。这样做的目的是让我知道 txt 文件是否已被转换

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


Dim infilename As Variant

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

4

2 回答 2

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"

于 2013-07-22T14:50:53.590 回答
0

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

   Dim newFileName As Variant
   newFileName = Left(inFileName, (InStrRev(inFileName, ".") - 1)) & "CONVERTED.txt"
于 2013-07-24T15:27:29.180 回答