【发布时间】:2018-02-15 06:06:55
【问题描述】:
我在 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 中将其作为打印数组引用,但出现“下标超出范围”错误
我的具体问题:我想根据工作表中的单元格值在 VBA 中生成一个动态数组,并能够使用该数组将特定工作表打印为一个文件。
如果您认为我可能会根据我的需要制作这个过于复杂的内容,我们非常愿意接受其他建议。感谢所有帮助!
【问题讨论】:
-
所有
Checkbox-es 都在同一张纸上吗? -
是的,它们都在同一张纸上。一个不会打印的