在VB中select多张图纸

我想select多个工作表打印除了一本书以外的所有工作表,到目前为止,我的代码如下所示,通过macroslogging:

Sub Print_All() ' ' Print_All Macro Sheets(Array("Class List", "Blank1", "Blank2", "Blank3", "Blank4", "Blank5", "Blank6" _ , "Blank7", "Blank8", "Blank9", "Blank10", "Blank11", "Blank12", "Blank13", "Blank14", _ "Blank15", "Blank16", "Blank17", "Blank18", "Blank19", "Blank20", "Blank21", "Blank22" _ , "Blank23", "Blank24")).Select Sheets("Blank2").Activate Sheets(Array("Blank25", "Blank26", "Blank27", "Blank28", "Blank29", "Blank30")). _ Select Replace:=False Sheets(Array("Blank1", "Blank2", "Blank3", "Blank4", "Blank5", "Blank6", "Blank7", _ "Blank8", "Blank9", "Blank10", "Blank11", "Blank12", "Blank13", "Blank14", "Blank15", _ "Blank16", "Blank17", "Blank18", "Blank19", "Blank20", "Blank21", "Blank22", "Blank23" _ , "Blank24", "Blank25")).Select Sheets("Blank2").Activate Sheets(Array("Blank26", "Blank27", "Blank28", "Blank29", "Blank30")).Select _ Replace:=False Range("F5:N10").Select Selection.PrintOut Copies:=1, Collate:=True End Sub 

它工作正常,但如果我想要更改工作表的名称会发生​​问题。 它会返回一个错误,因为它正在寻找空白。 有没有办法select工作表,而没有在代码中命名?

您始终可以通过名称而不是按名称引用表单,例如,在新创build的工作簿中,Sheet1具有索引1,Sheet2 – 索引2等等。

语法如下: yourWorkbook.Sheets(index as integer)

举个例子:

 dim wbk as Workbook set wbk = ActiveWorkbook dim i as integer wbk.Sheets(i).Select 

编辑:哦,请介意,工作表有时被删除或移动工作簿或外面。 给定的表单不一定与您的工作簿中的顺序相关联。 要检查您需要的工作表的种类,您可以尝试和失败或使用循环如下

 dim n as integer for n = 1 to wbk.Sheets.count debug.print "index " & i, wbk.Sheets(i).name next n