2016-04-13 147 views
0

大家早上好。我在嘗試使按鈕在Excel 2007,VBA中正常工作時遇到了一些困難。該按鈕的作用是根據複選框值爲true來對工作表進行分組。然後它將顯示打印對話框,以便用戶可以打印到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 

它加載與表的名稱的數組。然後使用此數組選擇適當的工作表。