我正在寻找一个 txt 文件,然后编辑文件名(将“转换”添加到文件名)和扩展名(从.r01到.txt)。这样做的目的是让我知道 txt 文件是否已被转换
到目前为止,这是我的代码;
Dim infilename As Variant
infilename = Application.GetOpenFilename("Text & r01 Files (*.r01;*.txt),*.r01;*.txt", , "Open Neutral File", "OPEN")
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"
使用 Sean Cheshire 的部分代码,我设法得到了我想要的东西。
Dim newFileName As Variant
newFileName = Left(inFileName, (InStrRev(inFileName, ".") - 1)) & "CONVERTED.txt"