Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 取消选择或取消选择工作表_Excel_Vba - Fatal编程技术网

Excel 取消选择或取消选择工作表

Excel 取消选择或取消选择工作表,excel,vba,Excel,Vba,我有一本有x张工作表的工作簿。 Sheet1中的一个按钮(commandbutton1)打开一个userform,其中包含两个复选框和一个预览按钮,可在两张要在PDF中预览的工作表之间进行选择 这是我的预览按钮代码 Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile A

我有一本有x张工作表的工作簿。 Sheet1中的一个按钮(commandbutton1)打开一个userform,其中包含两个复选框和一个预览按钮,可在两张要在PDF中预览的工作表之间进行选择

这是我的预览按钮代码

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim CheckBoxName As String

    For i = 1 To 2
        CheckBoxName = "CheckBox" & i
        If Me.Controls(CheckBoxName).Value = True Then
            Sheets(Me.Controls(CheckBoxName).Caption).Select (False)
        End If
    Next i

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:="D:\Preview.pdf"

    Unload Me

    Dim File As String
    File = "D:\Preview.pdf"
    ShellExecute 0, "Open", File, "", "", vbNormalNoFocus
End Sub
现在,问题是Sheet1始终包含在预览文件中,因为它是包含commandbutton1的工作表

那么,在导出图纸6和21之前,是否有方法取消选择图纸1

我还尝试了另一种方法,但它始终停留在这一行(Sheets(Array(SheetNames))。选择)

请帮我拿一下这些东西好吗


提前感谢您。

诀窍在于如何传入参数
False

Sheets(Me.Controls(CheckBoxName).Caption).Select (False)
这就是你想要的吗

Private Sub CommandButton1_Click()
    Dim i As Integer, j As Integer

    For i = 1 To 6
        CheckBoxName = "CheckBox" & i
        If Me.Controls(CheckBoxName).Value = True Then
            j = j + 1
            Worksheets(Me.Controls(CheckBoxName).Caption).Select (j = 1)
        End If
    Next
    If j = 0 Then Exit Sub

    '
    '~~> Rest of your code
    '
End Sub
之前:

之后:


这正是我想要的。。非常感谢你。。我真的很感谢你的帮助
Private Sub CommandButton1_Click()
    Dim i As Integer, j As Integer

    For i = 1 To 6
        CheckBoxName = "CheckBox" & i
        If Me.Controls(CheckBoxName).Value = True Then
            j = j + 1
            Worksheets(Me.Controls(CheckBoxName).Caption).Select (j = 1)
        End If
    Next
    If j = 0 Then Exit Sub

    '
    '~~> Rest of your code
    '
End Sub