我在Excel工作簿中有11个工作表(Sheet1,Sheet2,Sheet3等)的列表 . 我需要能够从该列表中选择一组要打印为一个文件的工作表 . 表格的名称不会改变 .
所以如果我想一次打印所有11个,我会说:
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4","Sheet5","Sheet6","Sheet7","Sheet8","Sheet9","Sheet10","Sheet11",).PrintOut
但不是这样,我想选择11的任意组合打印出来 .
ThisWorkbook.Sheets(Array("Sheet3", "Sheet5", "Sheet7,"Sheet9","Sheet11").PrintOut
我的目标是使工作簿用户友好,所以我设置了复选框,如果复选框控制单元格为TRUE,将取消隐藏这些特定工作表 . 快速插图:
If Sheets("ControlSheet").Range("A1").Value = TRUE then
Sheets("Sheet1").Visible = TRUE
'where ControlSheet Range A1 is the cell linked to the checkbox for that sheet.
我希望能够使用相同的复选框来选择要打印的纸张 .
-
到目前为止,我已经能够单独打印每张纸,但我希望它们作为一个文件打印 .
-
我试图根据控制单元格值设置一个字符串名称或变量数组,并在我的VBA中引用它作为我的打印数组,但是我得到"subscript out of range"错误
我的具体问题:我想基于工作表中的单元格值在VBA中生成动态数组,并且能够使用该数组将特定工作表打印为一个文件 .
如果您认为我可能会因为我需要而过于复杂,那么对其他建议非常开放 . 感谢任何和所有的帮助!
2 回答
那么只需打印11个列表中的非隐藏工作表?
最终代码如下!希望这可以帮助别人!