Я мог бы найти это. В моем вспомогательном модуле у меня было это:
Public EventsDisable, unReadWhenSelected As Boolean
.
Из большого сообщения о переполнении стека и вклада Рика Ротштейна в DailyDoseOfExcel.com Я узнал, что объявление переменных с разделением запятыми приводит к тому, что первая переменная объявляется как Вариант вместо предполагаемого Boolean .
Я только что перешел на следующее и ошибка исчезла .
Public EventsDisable As Boolean
Public unReadWhenSelected As Boolean
Я до сих пор не могу объяснить, почему происходит эта странная ошибка, когда EventsDisable объявлен как Вариант . Так что, если кто-нибудь знает, не стесняйтесь.
Option Explicit
' When doubleclick opening unread mails, they are automatically marked 'read'. This code will mark them 'unread'.
' Despite that, emails that have been read already and then doubleclick opened will stay 'read'.
' In other words: Doubleclicking a mail won't change its unread property
Public WithEvents myItem As Outlook.mailItem
Private Sub Application_ItemLoad(ByVal Item As Object)
MsgBox "Item loaded"
'If EventsDisable = True Then Exit Sub
If Item.Class = olMail Then
Set myItem = Item
End If
End Sub
Private Sub myItem_Read()
unReadWhenSelected = myItem.UnRead
End Sub
Private Sub myItem_PropertyChange(ByVal Name As String)
If EventsDisable = True Then Exit Sub
If Name = "UnRead" Then
If unReadWhenSelected = True And myItem.UnRead = False Then
myItem.UnRead = True
myItem.Save
End If
End If
End Sub