【发布时间】:2019-12-05 03:32:12
【问题描述】:
我有一些代码可以打开多个受密码保护的工作簿。在代码的末尾,我试图重新激活主工作簿中的工作表。但是,它不会重新激活。可能是由于打开过程需要更长的时间才能运行子?有什么建议吗?
我已尝试关闭事件。还尝试了等待功能。
Public Sub OpenFiles()
Dim mainwb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim numClients
Dim pw As String
Dim i As Integer
Dim newHour As Variant
Dim newMinute As Variant
Dim newSecond As Variant
Dim waitTime As Variant
Set mainwb = ThisWorkbook
myPath = mainwb.Sheets("Dashboard").Range("C1")
myExtension = ".xlsx"
numClients = mainwb.Sheets("Dashboard").Range("I1")
'Optimize Macro Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
For i = 4 To numClients
myFile = ThisWorkbook.Sheets("Dashboard").Range("A" & i).Value
pw = ThisWorkbook.Sheets("Dashboard").Range("B" & i).Value
Workbooks.Open Filename:=myPath & myFile & myExtension, Password:=pw
DoEvents
Next i
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
ThisWorkbook.Worksheets("Dashboard").Activate
End Sub
激活的工作表是上次打开的工作簿上的工作表。
【问题讨论】:
-
而不是使用
Thisworkbook按名称调用工作簿,这样它就知道要激活哪个。这只是使用当前处于活动状态的任何一个并转到该选项卡。