2017-04-20 31 views
0

我正在创建一个用于隐藏工作表选项卡的客户端的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就会中断。

回答

0

客户是否使用复选框选择想要打印的隐藏页的想法?你想打印出来作为一个单一的文件,而不是几个不同的文件?

如果是这样,这是你需要的逻辑。你有一个特殊的页面来复制其他页面是正确的。 (我不明白为什么要从“PP”页面删除行)。您可以在打印页面上添加包含页码的页眉和页脚。您只需要跟踪打印页上最后一次使用的行。

对于客户选择的每张纸,复制使用的范围。 (这有助于将宽度保持在正常的纸张大小范围内,或者可以通过编程强制打印完整页面大小。)将第一张复印的纸张粘贴到打印纸张的行“A”上。查找打印页的最后一个使用行并添加1行。在那里放一个分页符。添加另一行并将第二个选定的工作表粘贴到该行,等等。

相关问题