VBA,基于复选框值的数组?

时间:2016-04-13 14:24:09

标签: arrays excel-vba excel-2007 vba excel

大家早上好。我在Excel 2007,VBA中尝试使按钮正常工作时遇到了一些困难。此按钮的作用是基于复选框值为true的组工作表。然后它将显示打印对话框,以便用户可以打印到PDF或打印机。

我不知道该如何解决这个问题。我确实尝试过使用:

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

但是我发现使用此方法,前一个工作表将取消选择。我想也许一个数组可行。如果me.chkTableX = True的值,则数组将填充工作表。然后在最后我可以选择要打印的数组。

我很新,所以如果我错过了什么,我很抱歉。

1 个答案:

答案 0 :(得分: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

它加载一个包含工作表名称的数组。然后使用此数组选择正确的工作表。