2017-04-20 11 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:チェックボックスを1つだけ選択した場合、すべて正常に動作しますが、2になるとすぐに破損します。

答えて

0

クライアントがチェックボックスを使用して、どの隠しシートを印刷したいかを選択するという考えはありますか?そして、いくつかの異なる文書ではなく、単一の文書としてそれらを印刷したいのですか?

これが必要な場合は、ロジックです。あなたは、他のページをコピーする特別なページを持っていることに間違いありません。 (なぜ私はあなたが "PP"ページから行を削除しているのか理解していません)。あなたの印刷ページにページ番号を付けてヘッダーとフッターを追加することができます。印刷シート上で最後に使用された行を追跡するだけで済みます。

クライアントが選択したシートごとに、使用範囲をコピーします。 (幅を通常の用紙サイズに保つのに役立ちます。または、プログラムで強制的にフルサイズの用紙に印刷することもできます)。最初にコピーしたシートを印刷シートの行「A」に貼り付けます。最後に使用した印刷シートの行を探し、1行を追加します。そこに改ページしてください。別の行を追加し、2番目に選択したシートをその行に貼り付けるなど。

関連する問題