VBA确定工作簿索引并切换到一个'其他'工作簿

时间:2016-03-15 10:56:18

标签: excel vba excel-vba

我有一个代码在一个工作簿上运行,并通过引用另一个可能有任何名称的其他打开的工作簿开始,我想通过使用索引号切换到另一个打开的工作簿。

用户可以先打开包含代码的工作簿,或者首先打开其他工作簿,因此我希望能够说出活动工作表的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

1 个答案:

答案 0 :(得分:0)

要在Workbooks Collection中的两个打开的工作簿之间来回切换,请使用一些数学来比较ActiveWorkbook propertyThisWorkbook Property

Workbooks(IIf(CBool(Workbooks(1).Name = ThisWorkbook.Name), _
              1 - CBool(ActiveWorkbook.Name = ThisWorkbook.Name), _
              2 + CBool(ActiveWorkbook.Name = ThisWorkbook.Name))).Activate

这应该伴随检查以确保队列中只有两个工作簿(如原始样本所示)。