Проблемы с квадратными скобками в Excel / VBA / Onedrive? - PullRequest
0 голосов
/ 31 марта 2020

Хотя я могу переименовать Excel-файлы в имя, которое содержит квадратные скобки (который открывается нормально). Я не могу сохранить вновь созданный файл в Excel, используя квадратные скобки в имени файла.

К сожалению ThisWorkbook.Name преобразует квадратные скобки в круглые скобки напрямую. Есть ли способ избежать этого или хороший способ выяснить, использовались ли квадратные скобки в имени файла (поэтому я знаю, что преобразование имело место)?

1 Ответ

1 голос
/ 31 марта 2020

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, чтобы проверить существование скобка. (Обязательно добавьте ссылку на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...