我有一个在一个工作簿上运行的代码,并且首先引用另一个打开的工作簿,该工作簿可以有任何名称,出于这个原因,我想通过使用索引号切换到另一个打开的工作簿。
用户可以先打开包含代码的工作簿或先打开另一个工作簿,因此我希望能够说活动工作表的 IF 索引为 1,然后是 Workbooks(2)。激活,但如果活动工作表的索引为 2,则工作簿(1)。激活,谢谢。
我有这个代码来确保只有 2 本书已经打开;
If Workbooks.Count > 2 Then
MsgBox "Have ONLY the new data file and this open before running :)"
Exit Sub
End If
若要在工作簿集合中的两个打开的工作簿之间来回切换,请使用一些数学运算来比较 ActiveWorkbook 属性和 ThisWorkbook 属性。
Workbooks(IIf(CBool(Workbooks(1).Name = ThisWorkbook.Name), _
1 - CBool(ActiveWorkbook.Name = ThisWorkbook.Name), _
2 + CBool(ActiveWorkbook.Name = ThisWorkbook.Name))).Activate
这可能伴随着检查,以确保队列中只有两个工作簿(如原始示例所示)。