取消select或取消select工作表

我有一个x工作表的工作簿。 并且Sheet1中的一个button(commandbutton1)用两个checkbox和一个预览button来打开一个用户窗体,以在两张图纸之间进行select以在PDF中进行预览。

这是我的预览button代码。

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之前取消selectsheet1?

我也尝试了另一种方式,但总是卡在这一行(表(数组(SheetNames))。

 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 Dim SheetNames As String For i = 1 To 2 CheckBoxName = "CheckBox" & i If Me.Controls(CheckBoxName).Value = True Then SheetNames = SheetNames & Me.Controls(CheckBoxName).Caption & "," End If Next i SheetNames = Mid(SheetNames, 1, Len(SheetNames) - 1) Sheets(Array(SheetNames)).Select 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 

任何帮助,请任何这些?

提前感谢你。

诀窍是你如何传递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 

之前:

在这里输入图像说明

后:

在这里输入图像说明

要么

在这里输入图像说明