我需要一些帮助,我正在尝试创建一个基于工作表名称创建复选框的UserFrom。然后它将有4个按钮,1:打印,2:保存新工作簿,4:清除选择,5:取消。
这是我创建checboes的代码,并将标题更改为工作表名称。
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim i As Integer
For i = 1 To Worksheets.Count
Set ws = Worksheets(i)
Set Lbl = Frame1.Controls.Add("Forms.Checkbox.1", "Lbl1" & i, True)
Lbl.Caption = ws.Name
Lbl.Top = offset
offset = offset + 15
Next i
End Sub
这是清除选择的代码。
Private Sub CommandButton2_Click()
Dim ctrl As Control
For Each ctrl In UserForm1.Controls
If TypeName(ctrl) = "CheckBox" Then
ctrl.Value = False
End If
Next
End Sub
我需要按钮1和按钮1的帮助2,打印纸张并另存为新工作簿。打印时,需要使用与正常打印相同的打印格式。
新创建的工作簿需要使用下面的命名约定
进行保存NewWorkbook.SaveAs Filename:=MyPath & "\" & "Remittance" & " " & MyRange.Value & " " & MyDate.Text & ".xls" 'This saves a new document in our naming convention
非常感谢您提供的任何帮助。
修改
我设法编写了一些代码,允许我选择复选框,然后选择要打印的工作表。此代码有效,除非文本框中没有输入任何值,我想在没有输入值的情况下显示一个消息框,然后返回到表单输入值,但不确定如何编写验证代码。
Private Sub bntPrintNow_Click()
Dim ctrl As Control
Dim chkbx As MSForms.checkbox
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Me.Hide
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.checkbox Then
Set chkbx = ctrl
If chkbx Then
Worksheets(chkbx.Caption).PrintOut Copies:=Me.tbNumCopies + 0
End If
End If
Next
End Sub
下一个圣人将选定的工作表保存到新工作簿。