【发布时间】:2015-01-30 16:46:53
【问题描述】:
前几天我问了这个问题,并认为我找到了答案,但现在 Excel 继续进入它的“无响应”模式。我的问题是该程序在某些计算机上运行良好,但在其他计算机上运行良好。
背景: 该程序在用户填写 Excel 表单并单击提交后运行。程序验证数据,操作数据,通过 Outlook 创建电子邮件,最后保存并关闭文档。
该程序可以在许多同事的工作计算机上运行。我们都在 Windows 7、Office 2013 上运行,但我们中的一些人使用不同的笔记本电脑(HP、Dell 等)
这是对子例程的调用,这是 excel 开始“不响应”的代码行 - 仅供参考,这不是调试停止:
Call EmailApprovalP1(GeneralSection, ItemSection, VendorSection, MarketSection, Part1Section, wbLog, wbPCD, resubmission)
这里是被调用子程序的开始:
Public Sub EmailApprovalP1(ByRef GeneralSection As Object, ByRef ItemSection As Object, ByRef VendorSection As Object, ByRef MarketSection As Object, ByRef Part1Section As Object, ByRef wbLog As Workbook, ByRef wbPCD As Workbook, ByRef resubmission As Boolean)
'Declare In Memory
Dim i As Integer
Dim toEmail As String
Dim subject As String
Dim body As String
Dim OL As New Outlook.Application
Dim olMail As Outlook.MailItem
Set olMail = OL.CreateItem(olMailItem)
如果我停止Call EmailApprovalP1() 上的代码然后按 F8,Excel 将停止响应。有没有人对可能导致这种情况的原因有任何想法?
2-3-15 更新
适用于所有计算机的代码
Dim OL As Object
Set OL = CreateObject("Outlook.Application")
Dim olMail As Object
Set olMail = OL.CreateItem(olMailItem)
【问题讨论】:
-
如果
EmailApprovalP1例程,您能否添加更多代码。你传递了这么多Objects,这似乎很奇怪。它们是真的Objects还是从你的命名方式来看,它们看起来更像是别的东西,也许是Ranges...? -
范围是一个对象:)。 OP 已声明该宏在某些计算机上有效,而在其他计算机上则失败。
标签: vba excel outlook subroutine