VBA printout 方法改变了工作表选择

在用VBA实现多工作表逆序打印的代码执行时,总是报告数组越界!,调试后,发现原来多选的工作表只剩下一个工作表了!,不知道如何防止printout方法
改变Excel 工作表的选择状态?
代码如下:
For i = ActiveWindow.SelectedSheets.Count To 1 Step -1
If xYesorNo = vbYes Then
For xPage = Int(xStartPage) To xTotalPages Step 2
ActiveWindow.SelectedSheets(i).PrintOut from:=xPage, To:=xPage
Next
Else
Exit Sub
End If
Next

应该用数组先存选中的Sheet的Name,打印时通过存储的Sheet Name获取sheet后打印。
题主要的代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~


  '用数组存选中的Sheet Name
  Dim selectedSheets()
  Count = ActiveWindow.selectedSheets.Count - 1
  ReDim selectedSheets(Count)
  For i = 1 To ActiveWindow.selectedSheets.Count
    selectedSheets(i - 1) = ActiveWindow.selectedSheets(i).Name
  Next
  '打印对应的Sheet
  For i = 0 To Count
    If xYesorNo = vbYes Then
      For xPage = Int(xStartPage) To xTotalPages Step 2
       Sheets(selectedSheets(i)).PrintOut from:=xPage, To:=xPage
      Next
    Else
      Exit Sub
    End If    
  Next

数组的下标应该是 ActiveWindow.SelectedSheets.Count-1到0的范围。