标准下载论坛

标题: 请问如何给窗体中的控件添加事件? [打印本页]

作者: 老周周    时间: 2011-11-4 13:00
标题: 请问如何给窗体中的控件添加事件?
请问如何给窗体中的控件添加事件?窗体中有三个复选控件分别的宏程序在下面,只要单击确定即可运行复选的宏。


Sub 打印标签()
'
' 打印标签 Macro
'

'
Application.ActivePrinter = "\\ZZB04\Epson LQ-1600K 在 Ne06:"
ExecuteExcel4Macro _
"RINT(2,1,Cells(4,7),1,,,,,,,,2,""\\ZZB04\Epson LQ-1600K 在 Ne06:"",,TRUE,,FALSE)"
End Sub
Sub 打印备份标签()
'
' 打印备份标签 Macro
'

'
ActiveWindow.SelectedSheets.PrintOut From:=2661, To:=2665, Copies:=1
End Sub

Sub 打印工单()
'
' 打印工单 Macro
'

'
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveSheet.Unprotect Password:="locked"
Range("F3"Select
With Selection.Font
.Color = -16776961
End With
Range("C4:C6,E6:G6,C7:G7,I5:I6,H8,K88,O10:S28,P8"Select
Range("K8"Activate
Selection.ClearContents
Range("C4"Select
ActiveSheet.Protect Password:="locked", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
End Sub
作者: 老周周    时间: 2011-11-4 13:00
有谁帮我解决的加50个标准下载币
作者: 西大    时间: 2011-11-4 13:00
怎么跟VBA干上了?

你双击窗体中的“确定按钮”,把下面的代码复制到新出现的代码框中,应该可以达到你的目的。

Private Sub Cmd1_Click()
'其中Cmd1 是“确定”这个命令按钮的名称(在属性中定义的);
'其中ChBox1、ChBox2、ChBox3分别是“打印标签”、“打印标签备份”、“打印工单”这三个复选框在属性中定义的名称。

If ChBox1.Value = True And ChBox2.Value = False And ChBox3.Value = False Then '这里判断,如果只有“打印标签”被选中,则执行下一句中“打印标签”的宏
打印标签

ElseIf ChBox1.Value = False And ChBox2.Value = True And ChBox3.Value = False Then '这里判断,如果只有“打印标签备份”被选中,则执行下一句中“打印标签备份”的宏
打印标签备份

ElseIf ChBox1.Value = False And ChBox2.Value = False And ChBox3.Value = True Then '这里判断,如果只有“打印工单”被选中,则执行下一句中“打印工单”的宏
打印工单

Else
MsgBox ("请选择,并仅可选择一项") '如果没有选择或进行了多选,则弹出对话框提示用户

End If

End Sub
作者: 西大    时间: 2011-11-4 13:00
由于不知道你在填加控件时是如何定义属性的,所以在代码中我做了控件名的注释说明,你核对一下做些修改使其一致。

另外,这种情况下意见用单选框(配合窗口控件FRAME)。
作者: 老周周    时间: 2011-11-4 13:00
因为我需要同时打印这三个,或者同时打印其中两个才使用复选框的,根据你所提供的只是单选.是否可以改成复选形式的呢?
作者: 西大    时间: 2011-11-4 13:00
多选的话,你的复选框不多,可以直接用IF语句顺序检查就可以了:
Private Sub Cmd1_Click()
If Chbox1 = True Then
打印标签
End If
If ChBox2 = True Then
打印标签备份
End If
If ChBox3 = True Then
打印工单
End If
If Chbox1.Value = False And ChBox2.Value = False And ChBox3.Value = False Then
MsgBox ("您没有选择任何打印项目")
End If
End Sub

你试一下,祝你成功!
作者: 老周周    时间: 2011-11-4 13:00
根据你的提示我已经成功完成了上述的执行宏,但在打印上还有点小问题,问题如下:
Sub 打印标签()
'
' 打印标签 Macro
'

'
Application.ActivePrinter = "\\ZZB04\Epson LQ-1600K 在 Ne06:"
ExecuteExcel4Macro _
"PRINT(2,1,Cells(4,7),1,,,,,,,,2,""\\ZZB04\Epson LQ-1600K 在 Ne06:"",,TRUE,,FALSE)"
End Sub
为什么在上面的这个打印宏中用Cells(4,7)就不能打印,而在下面这个宏中就可以打印,要如何进行修改?
Sub 打印备份标签()
'
' 打印备份标签 Macro
'

'
ActiveWindow.SelectedSheets.PrintOut From:=2661, To:=Cells(4,7), Copies:=1
End Sub
作者: 西大    时间: 2011-11-4 13:01
你检查一下cells(4,7) 是否已经预设了打印到页数;
另,看一下是否和活动工作表有关?(单独执行上面的宏是否可以打印呢?)




欢迎光临 标准下载论坛 (http://bbs.bzxzk.net/) Powered by Discuz! X3.2