2016-04-13 3 views
0

おはようございます。 Excel 2007、VBAでボタンが正常に動作するようにするのが難しいです。このボタンが実行するのは、チェックボックスの値に基づくグループワークシートです。次に、ユーザーがPDFまたはプリンタに印刷できるように、印刷ダイアログが表示されます。VBA、配列はチェックボックスの値に基づいていますか?

私はこれについてどうなるかわかりません。私はこれを試しました:

If me.chkTable1 = True Then Sheets(Table3.Name).Select 
If me.chkTable2 = True Then Sheets(Table4.Name).Select 

しかし、私はこの方法で前のワークシートの選択を解除することがわかりました。多分配列が使えると思った。 me.chkTableX = Trueの場合、配列にはワークシートが設定されます。最後に、印刷用の配列を選択することができました。

私はかなり新しいので、私は何かが不足している場合私の謝罪です。このような

答えて

0

何かが動作します:

Sub sheetselect() 
Dim wsStr() As Variant 
Dim ostr() As Variant 

ReDim wsStr(0 To 0) 

If Me.chktable1 = True Then 
    wsStr(UBound(wsStr)) = table3.Name 
    ReDim Preserve wsStr(UBound(wsStr) + 1) As Variant 
End If 
If Me.chktable2 = True Then 
    wsStr(UBound(wsStr)) = table4.Name 
    ReDim Preserve wsStr(UBound(wsStr) + 1) As Variant 
End If 
ReDim ostr(0 To UBound(wsStr) - 1) 
For k = 0 To UBound(wsStr) - 1 
    ostr(k) = wsStr(k) 
Next k 
Sheets(ostr).Select 
End Sub 

それは、シートの名前を配列にロードします。次に、この配列を使用して適切なシートを選択します。