标准下载论坛

 找回密码
 注册
搜索
热搜: 活动 交友 安全
查看: 445|回复: 7
打印 上一主题 下一主题

请问如何给窗体中的控件添加事件?

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-4 13:00:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问如何给窗体中的控件添加事件?窗体中有三个复选控件分别的宏程序在下面,只要单击确定即可运行复选的宏。


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
2#
 楼主| 发表于 2011-11-4 13:00:26 | 只看该作者
有谁帮我解决的加50个标准下载币
3#
发表于 2011-11-4 13:00:33 | 只看该作者
怎么跟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
4#
发表于 2011-11-4 13:00:39 | 只看该作者
由于不知道你在填加控件时是如何定义属性的,所以在代码中我做了控件名的注释说明,你核对一下做些修改使其一致。

另外,这种情况下意见用单选框(配合窗口控件FRAME)。
5#
 楼主| 发表于 2011-11-4 13:00:45 | 只看该作者
因为我需要同时打印这三个,或者同时打印其中两个才使用复选框的,根据你所提供的只是单选.是否可以改成复选形式的呢?
6#
发表于 2011-11-4 13:00:51 | 只看该作者
多选的话,你的复选框不多,可以直接用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

你试一下,祝你成功!
7#
 楼主| 发表于 2011-11-4 13:00:57 | 只看该作者
根据你的提示我已经成功完成了上述的执行宏,但在打印上还有点小问题,问题如下:
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
8#
发表于 2011-11-4 13:01:03 | 只看该作者
你检查一下cells(4,7) 是否已经预设了打印到页数;
另,看一下是否和活动工作表有关?(单独执行上面的宏是否可以打印呢?)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|标准下载库

GMT+8, 2024-11-23 13:31 , Processed in 0.047203 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表