Excel VBA:基于用户表单的结果选择多个工作表 - 用于更新和打印
问题描述:
我正在创建一个用于隐藏工作表选项卡的客户端的Excel工作簿。我想要弹出一个用户窗体,客户可以在复选框中选择他们想要的页面,然后一起选择这些页面(以便更新页面编号)以及连续打印。Excel VBA:基于用户表单的结果选择多个工作表 - 用于更新和打印
从我所看到的其他选项,我已经填充了表名称的名称作为这样的特定片材:我已经尝试过转向这些值到一个数组,移调或
Dim iRow As Long
Set PP = Worksheets("Printing Page")
Dim CB1 As Worksheet
Set CB1 = Worksheets("Retail, Mall, Shopping Centres")
Dim CB2 As Worksheet
Set CB2 = Worksheets("Sports & Social Clubs")
'Clear & Populate the sheet
PP.Cells.Clear
PP.Cells(1, 1).Value = Chr(34) & CB1.Name & Chr(34)
PP.Cells(2, 1).Value = Chr(34) & CB2.Name & Chr(34)
'Check each checkbox and enter the sheet number in PP
If Me.CBRetailMallSC = False Then
PP.Rows(1).Delete
End If
If Me.CBSportsSocial = False Then
PP.Rows(2).Delete
End If
从那里运行一个像这样的功能link。 但是,我总是收到一条错误消息,指出“运行时错误9 - 下标超出范围”并指向表格(x)。选择代码行。
请大家帮忙,我完全失去了!
PS:如果只有一个复选框被选中,那么一切运行良好,但只要2就会中断。
答
客户是否使用复选框选择想要打印的隐藏页的想法?你想打印出来作为一个单一的文件,而不是几个不同的文件?
如果是这样,这是你需要的逻辑。你有一个特殊的页面来复制其他页面是正确的。 (我不明白为什么要从“PP”页面删除行)。您可以在打印页面上添加包含页码的页眉和页脚。您只需要跟踪打印页上最后一次使用的行。
对于客户选择的每张纸,复制使用的范围。 (这有助于将宽度保持在正常的纸张大小范围内,或者可以通过编程强制打印完整页面大小。)将第一张复印的纸张粘贴到打印纸张的行“A”上。查找打印页的最后一个使用行并添加1行。在那里放一个分页符。添加另一行并将第二个选定的工作表粘贴到该行,等等。