首页 > 解决方案 > Excel/VBA/Onedrive 中的方括号问题?

问题描述

尽管我可以将 Excel-Files 重命名为包含方括号的名称(可以正常打开)。我无法使用文件名中的方括号在 Excel 中保存新创建的文件。

不幸的是ThisWorkbook.Name,直接将方括号转换为圆括号。有没有办法避免这种情况或找出文件名中是否使用了方括号的好方法(所以我知道发生了转换)?

标签: excelvbaonedrive

解决方案


ThisWorkbook.FullName文件名中仍应包含括号。

对于本地保存的文件,您可以Split在路径分隔符上加上全名,并用于InStr检查最后一个元素中是否有括号。

Dim s
s = Split(ThisWorkbook.FullName, Application.PathSeparator)

fileName = s(UBound(s))

If InStr(fileName, "[") > 0 Or InStr(fileName, "]") > 0 Then
    ' do whatever
End If

另一种选择(在我看来,更强大)是使用FileSystemObject.GetFileName并且仍然使用InStr来检查括号是否存在。(确保在Tools > References下添加对 Microsoft Scripting Runtime 的引用。)

Dim FSO As Scripting.FileSystemObject
Set FSO = New Scripting.FileSystemObject

Dim fileName As String
fileName = FSO.GetFileName(ThisWorkbook.FullName)

If InStr(fileName, "[") > 0 Or InStr(fileName, "]") > 0 Then
    ' do whatever
End If

推荐阅读