Lỗi biên dịch Excel VBA: Kiểu dữ liệu do người dùng định nghĩa chưa được xác định.

Tôi muốn đoạn mã VBA trong Excel tự động gửi cho tôi lời nhắc liên hệ với khách hàng khi đến hạn chót tiếp theo.

Các chức năng khác dường như hoạt động bình thường, nhưng nó không gửi được thư như mong muốn và báo lỗi biên dịch.

Đây là đoạn mã:

Sub datesexcelvba() <- (và ở đây)


Dim myApp As Outlook.Application <- (vấn đề nằm ở đây)

Dim mymail As Outlook.MailItem

Dim mydate1 As Date

Dim mydate2 As Long

Dim datetoday1 As Date

Dim datetoday2 As Long


Dim x As Long

lastrow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

Đối với x = 2 Đến hàng cuối cùng


mydate1 = Cells(x, 12).Value

mydate2 = mydate1


Cells(x, 15).Value = mydate2


ngày hôm nay1 = Ngày

ngày hôm nay2 = ngày hôm nay1


Cells(x, 16).Value = datetoday


Nếu mydate2 - datetoday2 = 0 thì


Đặt myApp = New Outlook.Application

Đặt mymail = myApp.CreateItem(olMailItem)

mymail.To = Cells(x, 11).Value


Với mymail

.Chủ đề = "Nhắc nhở"

.Body = Cells(x, 20).Text

.Trưng bày

'.gửi

Kết thúc bằng


Cells(x, 13) = "Đã gửi lời nhắc"

Cells(x, 13).Interior.ColorIndex = 46

Cells(x, 13).Font.ColorIndex = 2

Cells(x, 13).Font.Bold = True

Cells(x, 14).Value = mydate2 - datetoday2


Kết thúc nếu

Kế tiếp

Đặt myApp = Nothing

Đặt mymail = Nothing

End Sub

>



Trả lời:

Trong trình soạn thảo Visual Basic, chọn Công cụ > Tham chiếu...

1) Hãy đảm bảo không có mục nào có ô kiểm được đánh dấu và tên bắt đầu bằng chữ MISSING. Nếu có, hãy bỏ chọn các ô kiểm đó.

2) Hãy đảm bảo rằng ô chọn Thư viện đối tượng Microsoft Outlook 16.0 đã được đánh dấu.



Trả lời:

Tôi không hiểu rõ ý nghĩa của điểm 1.

Tùy chọn "Thư viện đối tượng Microsoft Outlook 16.0" đã được chọn. (xem hình đính kèm bên dưới)



Trả lời:

Đó là Thư viện Đối tượng Microsoft Office 16.0. Vui lòng cuộn xuống danh sách và đánh dấu vào ô Thư viện Đối tượng Microsoft Outlook 16.0.

PS: Bạn đang sử dụng một biến datetoday chưa được khai báo cũng như chưa được gán giá trị cho nó. Lẽ ra phải là datetoday1 (hoặc datetoday2 ) chứ?



Trả lời:

À, được rồi, tên gần giống nhau. Tôi nhầm.

Có vẻ như giờ nó hoạt động rồi.

Liệu có thể lập trình để macro tự động chạy một lần vào lúc 8 giờ tối mỗi ngày không? Khi máy tính ở chế độ ngủ nhưng bảng Excel vẫn đang mở.



Trả lời:
Bạn cần tạo một tác vụ theo lịch trình trong Windows cho phép đánh thức máy tính. Tôi hy vọng ai đó khác có thể giúp bạn về vấn đề này.

Comments

Popular posts from this blog

Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

Thu hẹp và mở rộng cột trong Excel

Excel: Tìm và trả về "số cuối cùng" trong một cột, trong đó cột chứa: cả ô trống và số dương tùy ý (lớn hơn 0).