我需要添加一个进度条,用于将所有约会导出到带有宏的Outlook中的数据库。
这是我的VBA代码:
For Each appointment In objFolder.Items
If appointment.BusyStatus = olOutOfOffice Then
total = total + 1
End If
Next
使用此代码,total
会停留在0
,因此我无法获得百分比。
我不知道如何使用调试器。我想看看变量在执行时是什么。
答案 0 :(得分:0)
首先,请查看Getting Started with VBA in Outlook 2010文章。
您可以使用Items类的Restrict或Find/FindNext方法,而不是遍历文件夹中的所有项目。他们将只允许找到符合您条件的项目。
答案 1 :(得分:0)
您没有提供足够的代码来查看问题所在。也许你没有指向日历。遵循代码模式,而不是试图提高效率......
Option Explicit
Sub countAp()
Dim objfolder As folder
Dim Appointment As AppointmentItem
Dim totalAll As Long
Dim total As Long
Set objfolder = Application.GetNamespace("mapi").GetDefaultFolder(olFolderCalendar)
For Each Appointment In objfolder.Items
If Appointment.BusyStatus = olOutOfOffice Then
totalAll = totalAll + 1
End If
Next
Debug.Print "All Appointment.BusyStatus = olOutOfOffice: " & totalAll
Debug.Print "Processing..."
For Each Appointment In objfolder.Items
If Appointment.BusyStatus = olOutOfOffice Then
' do something here
Debug.Print Appointment.Subject
total = total + 1
Debug.Print " current total: " & Format(total, "000") & _
" Percentage Complete: " & Format(total / totalAll * 100, "##0.00")
End If
Next
Debug.Print "Done"
End Sub
您会发现这有用的Debugging VBA Code