2015-06-02 20 views
5

Có ai biết tại sao tôi nhận được lỗi "do người dùng xác định không được xác định" trong số Function GetOutlookApp() As Outlook.Application ở cuối mã này không?Lỗi do người dùng xác định không xác định khi chạy mã

Sub CreateAppointments() 

Dim cell As Excel.Range 
Dim rng As Excel.Range 
Dim wholeColumn As Excel.Range 
Dim startingCell As Excel.Range 
Dim oApp As Outlook.Application 
Dim tsk As Outlook.TaskItem 
Dim wkbk As Excel.Workbook 
Dim wksht As Excel.Worksheet 
Dim lastRow As Long 
Dim arrData As Variant 
Dim i As Long 

'bắt đầu ứng dụng Outlook

Set oApp = GetOutlookApp 
If oApp Is Nothing Then 
    MsgBox "Could not start Outlook.", vbInformation 
    Exit Sub 
End If 

' get phạm vi bảng tính thành một mảng trong một đi

Set wkbk = ActiveWorkbook 
Set wksht = wkbk.ActiveSheet 
Set wholeColumn = wksht.Range("B:B") 
lastRow = wholeColumn.End(xlDown).Row - 2 
Set startingCell = wksht.Range("B2") 
Set rng = wksht.Range(startingCell, startingCell.Offset(lastRow, 1)) 
arrData = Application.Transpose(rng.Value) 

'lặp qua mảng và tạo ra nhiệm vụ cho mỗi bản ghi

For i = LBound(arrData, 2) To UBound(arrData, 2) 
    Set tsk = oApp.CreateItem(olTaskItem) 
    With tsk 
    .DueDate = arrData(2, i) 
    .Subject = arrData(1, i) 
    .Save 
    End With 
Next I 

End Sub 

Function GetOutlookApp() As Outlook.Application 
On Error Resume Next 
Set GetOutlookApp = CreateObject("Outlook.Application") 

End Function 
+7

Did bạn thêm một tham chiếu đến máy chủ COM văn phòng? * Công cụ> Tài liệu tham khảo> đánh dấu vào Thư viện đối tượng của Microsoft Outlook XXX * –

+0

Bingo! Đó là nó Cảm ơn! –

+1

Bản sao có thể có của [Loại do người dùng xác định không được xác định - Macro Excel] (http: //stackoverflow.com/questions/24261557/user-defined-type-not-defined-excel-macros) –

Trả lời

7

How to automate Outlook from another program bài viết mô tả tất cả các bước cần thiết để tự động hoá Outlook. Nó tuyên bố:

Để sử dụng ràng buộc sớm, trước tiên bạn cần phải tham khảo thư viện đối tượng Outlook có sẵn. Để làm điều này từ Visual Basic (VB) hoặc Visual Basic cho các ứng dụng, hãy làm theo các bước sau:

  1. Trong trình soạn thảo Visual Basic, trên menu công cụ, bấm tham khảo.
  2. Bấm để chọn hộp kiểm Microsoft Outlook 15.0 đối tượng thư viện, sau đó bấm OK.
+0

Liên kết là chết trong câu trả lời này. Nhưng câu trả lời vẫn tốt. – NovaDev

+0

Liên kết đã được sửa ngay bây giờ. Cảm ơn bạn. –

0

Tôi đã có cùng một vấn đề khi tôi sử dụng Outlook trong kịch bản của tôi VBA Excel và tôi chọn:.

Tools> Tài liệu tham khảo> Đánh dấu vào hộp ở phía trước "Microsoft Outlook 15.0 Object Library

Các vấn đề liên quan