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