Outlook VBA: отсутствует свойство PathSeparator в объекте приложения
Я пытаюсь использовать свойство Application.PathSeparator. Но свойство PathSeparator недоступно для выбора, и если я ввожу его в код VBA, я получаю ошибку времени выполнения 438. Объект не поддерживает это свойство или метод.
Что-то, что мне нужно установить, чтобы иметь доступ к PathSeparator? У меня MS Office 2007 и Outlook 2010. У меня не установлен клиент.Net.
Попытка использовать в примере кода ниже:
Sub UnZipFile(strTargetPath As String, Fname As String)
Dim oApp As Object
Dim FileNameFolder As Variant
If Right(strTargetPath, 1) <> Application.PathSeparator Then
strTargetPath = strTargetPath & Application.PathSeparator
End If
FileNameFolder = strTargetPath
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(strTargetPath & Fname).items
DoEvents
End Sub
1 ответ
PathSeperator
не является собственностью Outlook.Application
, Если вы действительно хотите использовать Application.PathSeperator
Вы можете добавить ссылку на Microsoft Excel x.0 Object Library
затем добавьте этот код в начало вашего проекта:
Dim exapp As Excel.Application
Set exapp = New Excel.Application
... и заменить все экземпляры Application.PathSeperator
с:
exapp.PathSeparator
... но это, наверное, самый глупый код, который я когда-либо писал. Все PathSeperator
свойство делает это возвращает зависимый от устройства разделитель пути, поэтому в окнах он возвращает строку \
, Это свойство было доступно в Excel VBA до того, как Outlook получил VBA, и на самом деле оно больше не используется. Вот список разделителей пути для разных операционных систем, если вы заинтересованы.
Вот приведенный выше код, работающий в Outlook:
If Right(strTargetPath, 1) <> "\" Then
strTargetPath = strTargetPath & "\"
End If
FileNameFolder = strTargetPath
Set oApp = CreateObject("Shell.Application")
oApp.NameSpace(FileNameFolder).CopyHere oApp.NameSpace(strTargetPath & Fname).Items
DoEvents
Надеюсь это поможет!