Tôi đã viết macro lặp qua lịch người dùng và thực hiện sửa đổi các mục nhập fufil một critera nhất định.Lặp lại nhanh chóng thông qua các mục cuộc hẹn Outlook
Vấn đề là khi lịch là rất lớn, điều này mất một thời gian dài để làm. Tôi dường như không thể lọc các cuộc hẹn vì oAppointmentItems
dường như lưu trữ các mục nhập khi chúng được tạo - không nhất thiết phải giống như khi chúng bắt đầu.
Mã Tôi đang sử dụng là:
Dim oOL As New Outlook.Application
Dim oNS As Outlook.NameSpace
Dim oAppointments As Object
Dim oAppointmentItem As Outlook.AppointmentItem
Set oNS = oOL.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar)
For Each oAppointmentItem In oAppointments.Items
DoEvents
' Something here
Next
Set oAppointmentItem = Nothing
Set oAppointments = Nothing
Set oNS = Nothing
Set oOL = Nothing
ngắn loại bỏ các DoEvents
(mà chỉ có nghĩa là Outlook dường như bị khóa cho người sử dụng) là có cách nào tôi có thể tăng tốc độ này lên bằng cách áp dụng một số loại bộ lọc? Ví dụ, các cuộc hẹn bắt đầu trong tương lai.
Đây chính xác là những gì tôi đang tìm kiếm hôm nay! Điều này đã cứu tôi rất nhiều rắc rối. Một điều tôi nhận thấy mặc dù là tôi không thể làm cho nó hoạt động với một bộ lọc ngày bằng cách sử dụng =, và thật khó để có được một ngày chính xác (dường như phụ thuộc vào việc chúng là ngày hay ngày/giờ trong Outlook). Giống như> Ngày - 1 ngày và Ngày và Ngày
Jeff
Sử dụng kết buộc sớm trong VBA, olRecItems nên là DIM'd như thế nào? (Outlook. ???). Cảm ơn .. –
@iDevlop như Outlook.MAPIFolder AFAIK. – Fionnuala