excel - Excel/VBA/Onedrive 中的方括号问题?
问题描述
尽管我可以将 Excel-Files 重命名为包含方括号的名称(可以正常打开)。我无法使用文件名中的方括号在 Excel 中保存新创建的文件。
不幸的是ThisWorkbook.Name
,直接将方括号转换为圆括号。有没有办法避免这种情况或找出文件名中是否使用了方括号的好方法(所以我知道发生了转换)?
解决方案
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
推荐阅读
- excel - 如何使用 VBA 代码根据单元格值隐藏 Excel 工作表
- autodesk-forge - 在 Revit 附加组件 .net dll 中列出可用的 BIM 360 项目,然后列出要打开的可用 BIM 360 模型
- angular - 使用“/”字符将数据从 Angular 传递到 .Net Core Web Api
- assembly - 如果 LC3 中有 16 个寄存器,有多少位可用于立即值
- gridjs - gridjs 有默认的排序标志吗?
- python - 如何获取 POST 请求,并将相同的 POST 请求广播到 python 中预定义的 url 列表
- excel - 向下移动 (xlDown) 然后向右移动 (xlRight) 不起作用
- coq - Coq:评估/简化 `Prop` 重言式
- sql - 自季度开始以来的 SQL 查询计数
- python - 使用 sqlite3 在 python 中缺少图形数据