我很新的vb.net和Outlook加載項,在一個項目上構建一個Outlook加載項(使用VisualStudio 2017的VSTO),在這裏我得到這個錯誤即使經過數小時的搜索,也沒有得到任何線索,可能不會朝着正確的方向發展。這就是爲什麼林在這裏尋求你的幫助。謝謝Folders.Item(FolderName).Folders:錯誤:System.Runtime.InteropServices.COMExceptions:嘗試的操作失敗。一個對象無法找到
這是我得到的錯誤,我已經指出錯誤出現的代碼行。
錯誤:System.Runtime.InteropServices.COMExceptions:嘗試的操作失敗。找不到對象。
更新:
我在測試一點點,發現如果我不這樣行dFolder.Name = "X" + dName
,dName = dFolder.Name
內觀而手動重命名名稱添加數據文件部分有問題重命名根文件夾,則全功能工作正常,沒有任何錯誤。
注:這段代碼的目的是從一個文件夾複製郵件到另一個地方都根文件夾的名字是一樣的,因爲目標文件夾僅僅是源文件夾的鏡像副本,而對於這個郵件沒有如果複製兩個文件夾的名稱都是相同的,這就是爲什麼我在添加到Store Session時必須重命名目標文件夾,以便系統可以將源文件夾和目標文件夾標識爲兩個不同的位置。我不知道爲什麼它沒有得到dFolders = oNspace.Folders.Item(dName).Folders
的重命名值。請幫忙。
。
Public Shared Sub SetSrcAndDst(Src As String, Dst As String)
Dim oApp As Outlook.Application
Dim oNspace As Outlook.NameSpace
Dim sFolders As Outlook.Folders
Dim sFolder As Outlook.Folder
oApp = Globals.ThisAddIn.Application
oNspace = oApp.GetNamespace("MAPI")
sFolders = oNspace.Folders.Item(Src).Folders
Dim oStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim dPath As String
Dim dName As String
Dim dFolders As Outlook.MAPIFolder
Dim dFolder As Outlook.MAPIFolder
oStores = oApp.Session.Stores
oNspace.AddStore(Dst)
dName = ""
For Each oStore In oStores
dFolder = oStore.GetRootFolder
dPath = oStore.FilePath
If dPath = Dst Then
dName = dFolder.FolderPath
dName = dName.TrimStart({"\"c})
dFolder.Name = "X" + dName
dName = dFolder.Name
End If
Next
'''
''' Getting error in this below line (dFolders = oNspace.Folders.Item(dName).Folders)
''' System.Runtime.InteropServices.COMExceptions:
''' The attempted operation failed. An object could not be found.
'''
dFolders = oNspace.Folders.Item(dName).Folders
For Each sFolder In sFolders
For Each dFolder In dFolders
If sFolder.Name = dFolder.Name Then
Call CopyMail(sFolder, dFolder)
End If
Next
Next
End Sub
($除外).StackTrace
at Microsoft.Office.Interop.Outlook.FoldersClass.get_Item(Object Index)
at AutoBackup.ThisAddIn.SetSrcAndDst(String Src, String Dst) in E:\AutoBackup\ThisAddIn.vb:line 56
at AutoBackup.SettingsForm.PstConfirmBtn_Click(Object sender, EventArgs e) in E:\AutoBackup\SettingsForm.vb:line 37
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
請不要用VBA標籤VB.NET代碼。 VB.NET與VBA無關。 –
單擊「查看詳細信息」並將堆棧跟蹤粘貼到您的帖子中。這將比這個屏幕截圖更有幫助。 –
很可能,'dName'指的是一個不存在的文件夾。 –