2015-11-06 84 views
1

我正在嘗試使用Application.PathSeparator屬性。但PathSeparator屬性不可用於選擇,如果我將其輸入到我的VBA代碼中,則會出現運行時錯誤438 - 對象不支持此屬性或方法。Outlook VBA:應用程序對象中缺少PathSeparator屬性

有什麼我需要安裝有權訪問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 
+0

是什麼讓你覺得財產應該存在? I.E.你之前看過的地方。顯示一些參考。 –

+0

抱歉。我試圖在特定的Outlook文件夾中循環瀏覽電子郵件以將附件保存到Windows文件夾。一些附件是zip文件中的Excel文件,其他文件只是Excel。所以我有示例代碼來解壓使用這個屬性。看原始問題上面的代碼: – BarryH

+0

看下面是什麼? –

回答

0

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屬性所做的是返回設備依賴路徑分隔符,因此在Windows中它返回字符串\。在Outlook獲得VBA之前,這是一個在Excel VBA中可用的屬性,並且它不再被真正使用。 Here是不同操作系統的路徑分隔符列表,如果您有興趣的話。

這裏是上面的代碼,在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 

希望這有助於!

+0

謝謝安德魯。這是一個巨大的幫助。 – BarryH

相關問題