更新代碼3如果時間和用戶定義的列聲明
我的新代碼只運行,而無需+ ReceivedTime > 4
我收到這個說法的錯誤消息。錯誤是「運行時錯誤91,對象變量或塊變量未設置」
到目前爲止,過期列僅填充「否」,因爲4小時不包括在內。
我相信Debug.Print是不正確的,因爲我想刪除這個。
+ ReceivedTime > 4
對於查明ReceivedTime是否超過4小時似乎不正確?
For Each msg In myCollection
'
'check if received time is > than 4 hours
If str2 = "A" Then
'If str2 = "A" + ReceivedTime > 4 Then
Set objProperty = msg.UserProperties(udf(4))
objProperty.value = "Yes"'Set objProperty.str4 = "Yes" 'set Overdue column to say Yes
Else
Set objProperty = msg.UserProperties(udf(4))
objProperty.value = "No" 'if this is not over 4 hours; display No
End If
msg.Save
Next
End If
End Sub
如若小時的語句是類似如下
If str2 = "Create Customer" And ReceivedTime.MailItem = Hour > 4 Then
Set objProperty = msg.UserProperties(udf(4))
objProperty.value = "Yes"
我收到一個運行時錯誤這一點。
_________________________________________________________________________-
原題:
我想在Outlook用戶定義字段列If語句稱爲 「過期」。
如果在UDF 2中選擇了一封電子郵件並且其值爲「A」且標記狀態未標記爲完成;然後有一個4小時的計時器完成這項任務 - 但是任務計時器應該在郵件項目到達郵箱後立即開始。
如果這不是逾期,那麼列「逾期」(UDF4)將保持爲「否」,如果這是過期; > 4小時,此列將被設置爲值「是」
以下是代碼。
以前的代碼
For Each msg In myCollection
'check if received time is > than 4 hours
If str2 = "A" + ReceivedTime > 4 Then
msg.str4 = "Yes" 'set Overdue column to say Yes
Else
msg.str4 = "No"
End If
Debug.Print "Set objProperty"
If (objProperty Is Nothing) Then
Debug.Print "Set objProperty"
End If
End If
Debug.Print "objProperty.value"
msg.Save
Next
End If
End Sub
我試圖重新排列你的邏輯,至少它有一些縮進。我還提出了一些'end if'語句,以使代碼在結構上正確。現在在邏輯上是否正確是另一回事。縮進使得更容易看到「For .. Each」和「if .. end if」塊在哪裏。不知道最初的'If .. end if'是什麼意思? – MiguelH
謝謝..我想檢查標誌狀態是否完成,所以我認爲這將是一個If語句,說如果這被標記爲完成,然後結束如果:什麼都不做......但如果標誌狀態未標記爲完成然後檢查小時數,如果電子郵件設置完成逾期 – Soneeka
好的。我已經把'end if'移到了正確的地方。你的想法是合理的,因爲需要最初的'if'來檢測標記設置。在這種情況下,檢測'If ... end if'塊的標誌圍繞所有其餘的邏輯。只有在未設置標誌時纔會執行此操作。注意我已經將條件更改爲'<> oFlagComplete' – MiguelH