Lin*_*iel 16 excel vba excel-vba
我需要通过VBA获取没有扩展名的文件名.我知道ActiveWorkbook.Name属性,但如果用户Hide extensions for known file types关闭Windows属性,我的代码的结果将是[Name.Extension].如何只返回独立于windows属性的工作簿名称?
我尝试甚至ActiveWorkbook.Application.Caption但我无法自定义此属性.
Rub*_*uck 56
这里给出的答案可能在有限的情况下有效,但肯定不是最好的方法.不要重新发明轮子.该文件系统对象在Microsoft脚本运行时库已经做的正是这样的方法.它叫做GetBaseName.它按原样处理文件名中的句点.
Public Sub Test()
Dim fso As New Scripting.FileSystemObject
Debug.Print fso.GetBaseName(ActiveWorkbook.Name)
End Sub
Public Sub Test2()
Dim fso As New Scripting.FileSystemObject
Debug.Print fso.GetBaseName("MyFile.something.txt")
End Sub
Run Code Online (Sandbox Code Playgroud)
小智 11
简单,但对我来说效果很好
FileName = ActiveWorkbook.Name
If InStr(FileName, ".") > 0 Then
FileName = Left(FileName, InStr(FileName, ".") - 1)
End If
Run Code Online (Sandbox Code Playgroud)
bp_*_*bp_ -1
strTestString = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
Run Code Online (Sandbox Code Playgroud)
完整学分:http ://mariaevert.dk/vba/?p=162