如果运行时超过单个代码的某个时间限制 - VBA,则跳过一行

时间:2018-04-23 07:55:19

标签: vba outlook

我正在创建一个表单,其中所有凭据都由访问它的任何人自动填充。但是,我在尝试获取用户的电子邮件地址时遇到了困难。

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")

UserEmail = olNS.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress

这一行可能需要花费1分钟的某个用户PC,而其他几行则需要几秒钟。 如果超过5秒,有没有办法跳过这个?

我想应用application.ontime但不知道如何去那里。

1 个答案:

答案 0 :(得分:0)

VBA不适用于运行多线程调用。如果要优化Outlook VBA解决方案的性能,可以考虑创建COM加载项。有关详细信息,请参阅Chapter 12: Migrating VBA Solutions to VSTO

在访问地址输入对象之前,我建议获取Address属性值。它返回一个表示收件人电子邮件地址的字符串。如果它对应于SMTP地址,则可以跳过不必要的呼叫。