使用Excel VBA,我如何在第二个工作簿中的'thisworkbook.close‘事件之后保持我的原始代码执行? |
您所在的位置:网站首页 › excel表格宏启用不了 › 使用Excel VBA,我如何在第二个工作簿中的'thisworkbook.close‘事件之后保持我的原始代码执行? |
在Excel 2007中,我有一个工作表,其中包含其他Excel文档的列表,所有这些文档都有自己的VBA。我的代码打开列表中的第一个工作簿,让它的vba运行,然后当它完成时,将其标记为完成,并打开列表中的下一个工作簿。 所有这些都运行得很好,除非我让另一个workbok用“thisworkbook.close”关闭它自己。这会停止在原始工作簿中运行的VBA及其自身。如果我注释掉这一行,一切正常,但我宁愿一次只打开主工作簿和一个子工作簿。 此外,在这种情况下,将所有VBA移动到主工作簿也是不切实际的。 前面的代码是一个高度简化的版本,用来显示这个问题: Workbook1 1的代码: Sub RunReports() Dim wkb1 As Workbook Dim wks1 As Worksheet Dim lngR As Long Dim strReport As String Set wkb1 = ThisWorkbook Set wks1 = wkb1.Sheets(strDay) For lngR = 4 To 1048576 strReport = wks1.Cells(lngR, 1).Value 'open the report. Its own VBA will take care of everything else Workbooks.Open strReport 'mark the report as complete wks1.Cells(lngR, 2).Value = "done" Next lngR End Sub打开的工作表中的代码: Private Sub Workbook_Open() ThisWorkbook.Sheets("Sheet1").Cells(1, 1).Value = Now() ThisWorkbook.Save Application.Wait (Now() + TimeValue("00:00:05")) ThisWorkbook.Close End Sub如果我注释掉'thisworkbook.close',它会打开它们,更新它们的打开时间,并保存它们。如果不是,它将执行第一个'thisworkbook.close‘之前的所有操作,关闭第一个子工作簿,并停止所有VBA执行。 当“子”工作簿的代码包含“thisworkbook.close”(编辑后使问题清晰)时,有谁知道如何在“子”工作簿的代码完成后保持“主”工作簿的vba代码运行吗? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |