打开Excel并从Outlook运行宏使Excel陷入任务管理器

时间:2016-07-28 22:19:52

标签: excel vba excel-vba outlook

我在Outlook中有一个宏调用Excel文件并在该Excel文件中运行宏然后关闭该文件。问题是关闭Excel后,它将保留在任务管理器中。我已经测试了这一百万次,我甚至已经删除了我的Excel宏中的所有代码,看看是否是问题,但Excel仍然仍然卡在任务管理器中。我的Outlook代码是:

Dim xlApp As Object
Dim xlWB As Workbook
Dim strFile As String
Set xlApp = CreateObject("excel.application")
xlApp.Visible = True
xlApp.DisplayAlerts = False
strFile = "c:\desktop\a.xlsm"
Set xlWB = Workbooks.Open(strFile)
xlApp.Run ("Cleanup")
xlWB.Close False
If Not xlWB Is Nothing Then
    Set xlWB = Nothing
End If
xlApp.Quit
If Not xlApp Is Nothing Then
    Set xlApp = Nothing
End If

1 个答案:

答案 0 :(得分:0)

代码的问题是我没有使用我创建的Excel应用程序打开工作簿。我通过在这里添加xlApp修复了问题:

     function validDate() {     
     var today=new Date();
     var inputDate = new Date(document.getElementById("date").value);
     today.setHours(0,0,0,0);    
     if (inputDate < today) {
         alert("Your event cannot happen in the past.");        
     } 
     else {
        var startTime =  TimeinMillisec(document.getElementById("timeStart").value);  
         var endTime =  TimeinMillisec(document.getElementById("timeEnd").value);

         if( startTime > endTime)
          alert("Event cannot be held");
          else
          alert("Done");

     }
   }



  function TimeinMillisec(gTime)
   {
     var parts=gTime.split(" ");
     var hhmm = parts[0].split(":");
       hhmm[0] = parseInt(hhmm[0]);
     if( parts[1].toLowerCase() === "pm")
        hhmm[0] = parseInt(hhmm[0]+12);
        var seconds = parseInt( ((+hhmm[0]) * 60 * 60) + ((+hhmm[1]) * 60));     
     return seconds;
   }

对于这样一个耗时的问题,这可能不是一个更简单的解决办法:(