2016-11-23 1 views
0

Outlook의 VBA를 사용하여 약속의 마지막 주를 잡으려고합니다.약속의 마지막 주까지 검색 제한

.Restrict 메서드를 사용하고 있는데, 뭔가가 내 문자열을 3 년 더 뒤로 가져옵니다.

나는 나의 시간 브라켓 형식의 날짜를 선언하는 것으로 시작 :

myStart = Format(DateAdd("d", -7, Now()), "ddddd h:nn AMPM") 
myEnd = Format(Now(), "ddddd h:nn AMPM") 

내 제한 기준을 유지하기 위해 문자열을 구축 할 수 있습니다. 여기에 내가 결과 호출/사용 방법, 좀 더 컨텍스트를 들어

Set oRestrItems = oItems.Restrict(strRestriction) 

:

strRestriction = "[Start] <= '" & myEnd _ 
& "' AND [End] >= '" & myStart & "'" 

마지막으로 내 약속 항목에 제한 전화

For Each oApptItem In oRestrItems 'oItems will grab everything, but that's hardly perfect. 
    If oApptItem.Sensitivity <> olPrivate Then 
     MsgBox (oApptItem.Subject) 
     MsgBox (oApptItem.Start) 
     MsgBox (oApptItem.End) 
    End If 
Next 
+0

응답자가 귀하를 도울 수있게 만들면 응답을 얻을 확률이 높아집니다. http://stackoverflow.com/help/mcve – niton

답변

0

가 나는 것을 추측 할 수 있습니다 두 문장이 누락되었습니다.

이 경우, Restrict에 추가 진술이 필요한 이유에 대해 다른 질문을 할 수 있습니다. 누군가가 대답 할 수도 있습니다.

최소, 완전하며 인증 가능한 예입니다. 두 문 중 하나 또는 양쪽 모두를 주석 처리하십시오. 항목이 동일하지 않은 것을 확인해야합니다.

Option Explicit 

Sub LastWeekAppts() 

Dim objFolder As Folder 

Dim oItems As items 
Dim oRestrItems As items 

Dim strRestriction As String 
Dim myStart As Date 
Dim myEnd As Date 

Dim temp As Object 

Set objFolder = Session.GetDefaultFolder(olFolderCalendar) 
Set oItems = objFolder.items 

' ***************************************** 
' Odd results without these two statements 
oItems.IncludeRecurrences = True 
oItems.Sort "[Start]" 
' ***************************************** 

myEnd = Date 
myStart = DateAdd("d", -7, Date) 

Debug.Print " myStart: " & myStart 
Debug.Print " myEnd : " & myEnd 

strRestriction = "[Start] <= '" & myEnd _ 
         & "' AND [End] >= '" & myStart & "'" 
Debug.Print strRestriction 

Set oRestrItems = oItems.Restrict(strRestriction) 

For Each temp In oRestrItems 
    Debug.Print temp.start & " - " & temp.Subject 
Next temp 

End Sub