簡體   English   中英

Outlook 錯誤:未定義用戶定義類型引用 Excel 工作簿

[英]Outlook Error: user-defined type not defined referring to Excel workbook

我每天收到 50 封 Excel 張的郵件。 我想將每張 Excel 工作表的第一行添加到我計算機上現有的 Excel 工作表中。

我首先編寫了一個腳本,在本地合並這些工作表(我下載了 Excel 工作表,然后運行我的腳本),這里一切正常。

現在,我嘗試將腳本直接放入 Outlook,因此無論何時收到其中一封電子郵件,都會自動完成此操作。

最初我想添加一個規則,宏應該在什么基礎上運行,但這不起作用。 我找到的解決方案是在“ThisOutlookSession”的子例程中調用宏:
在此處輸入圖像描述

這是我第一次為 outlook 編寫宏,所以我不確定我是否正確傳遞了 arguments。

當我的 Modul2 被調用時,我立即得到錯誤

未定義用戶定義類型

Dim wb_master As WorkbookDim wb_email As Workbook上。

這是代碼的一個迷你示例(這里它只是將文件名添加到 ID 列中):

Sub Merge_oewaReport(itm As Outlook.MailItem)
Dim wb_path As String
Dim wb_master As Workbook
Dim ws_master As String

Dim objAtt As Outlook.Attachment
Dim FileName As String
Dim wb_email As Workbook
Dim j As Integer
Dim ir_last As Integer

wb_path = "\\swi56prof01\UserData$\heinreca\Documents\Outlook-Dateien\AllData.xlsx"
Set wb_master = Workbooks.Open(wb_path)
ir_last = wb_master.Worksheets(ws_master).Range("A" & Rows.Count).End(xlUp).Row

For Each objAtt In itm.Attachments
    FileName = objAtt.DisplayName
    Set wb_email = Workbooks.Open(FileName, True, True)
    fID = Split(FileName, " - ")
    j = wb_master.Worksheets(ws_master).Cells.Find(What:="ID", SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
    wb_master.Worksheets(ws_master).Cells(ir_last + 1, j) = fID(0)
Next

我檢查了工具>參考解決方案。 Microsoft Office 16.0 Object 庫中的勾號已經存在。

我試圖定義新工作簿而不僅僅是工作簿。


編輯:我決定嘗試后期綁定方法並更改我的一些 Dims:

Dim app_master As Object
Dim wb_master As Object
Dim ws_master As Object
Dim ic_last As Integer

其次是:

Set app_master = CreateObject("Excel.Application")
Set wb_master = app_master.Workbooks.Open(wb_path)
Set ws_master = wb_master.Sheets(1)

但是現在它返回一個錯誤

變量未定義

在該行:

ic_last = ws_master.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column

它突出顯示“xlPrevious”。

當我的 module2 被調用時,我立即在 Dim wb_master As Workbook 和 Dim wb_email As Workbook 行上收到“未定義用戶定義類型”錯誤。

有兩種可能的方法來解決這個問題:

  1. 添加一個 Excel COM 引用,這樣聲明的類型將對 VBA 可用。這稱為早期綁定。

  2. 如果您不想添加 Excel COM 引用,請將對象聲明為 Object。 這稱為后期綁定。

在自動化中使用早期綁定和后期綁定以及早期綁定與后期綁定:VBA 開發人員基本指南文章中閱讀更多相關信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM