vba - Application.ActiveExplorer.Selection 错误:数组索引超出范围
问题描述
我在 Outlook 中有代码,可以从当前打开的电子邮件或选定的电子邮件中创建回复。
此代码过去有效,但由于Application.ActiveExplorer.Selection
不再识别打开的电子邮件而停止工作。
我的代码片段。
Public Sub ReplyWithAttachmentsTwo()
Dim rpl As Outlook.MailItem
Dim itm As Object
Dim objDoc As Word.Document
Dim objBkm As Word.Bookmark
Set itm = GetCurrentItem()
If Not itm Is Nothing Then
Set rpl = itm.ReplyAll
rpl.BodyFormat = olFormatHTML
CopyAttachments itm, rpl
Unload templateUserForm
Unload inputUserForm
End If
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
Set objApp = Nothing
End Function
Set GetCurrentItem = objApp.ActiveExplorer.Selection.item(1)
是有问题的线。GetCurrentItem
即使我打开了一封电子邮件,也会设置为 Nothing。这ActiveInspector
部分工作正常。
没有On Error Resume Next
我得到
运行时错误“-2147352567 (80020009)”数组索引超出范围。
解决方案
如果出现运行时错误'-2147352567 (80020009)' Array index out of bounds,这意味着objApp.ActiveExplorer.Selection.Count = 0
,这意味着没有选择任何内容。
推荐阅读
- python - 在 Python 中将一列拆分为多列
- javascript - 如何从 DOM 中的状态函数获取状态值
- racket - 字符串或字符串文字失败
- r - R packge install from GitHub - "'' does not exist in current working directory
- python - Stuck on tensorflow advanced indexing
- python - django 计算中的 0.01 差异
- c++ - 为私有结构定义两个参数的运算符重载
- kubernetes - Openshift origin oc cluster up 失败
- r - Replace for-loop by function
- partitioning - 在 Autosar 中,我们如何决定哪些 SWC/BSW 应该转到受信任的 OS 应用程序,哪些 SWC/BSW 应该转到非受信任的 OS 应用程序?