在EXCEL VBA中~~我要实现以下功能

来源:百度知道 编辑:UC知道 时间:2024/09/28 15:58:09
首先,有一个窗体(窗体上有若干个文本框和按钮),窗体随EXCEL文件的打开而打开
第二,从早上九点开始每十分钟自动运行一段代码(代码功能:使整个窗体不可用,即文本框不能输入,按钮点不了,全部是灰色,维持十秒,然后又恢复正常)

插入模块输入以下代码:

Option Explicit
'声明一个公共变量k,用于判断当前是否继续执行OntimeRun
Public k As Boolean
Sub OntimeRun()
Call aa
'如果k=true,那么每隔10分钟执行程序OntimeRun
If k = True Then
Application.OnTime Now() + TimeValue("00:10:00"), "OntimeRun"
End If
VBA.DoEvents
End Sub

Sub aa()
Application.Wait Now() + TimeValue("00:00:10")
End Sub

在thisworkbook输入代码:

Private Sub Workbook_Open()
UserForm1.Show
End Sub

在UserForm1输入代码:

Private Sub UserForm_Initialize()
k = True
OntimeRun
End Sub

Private Sub UserForm_Terminate()
k = False
End Sub

Private Sub UserForm_Activate()
ChangeStatus
End Sub

Sub ChangeStatus()
Dim blnStatus As Boolean
Dim ctl As MSForms.Control

For Each ctl In frmMain.Controls
ctl.Enabled = Not ctl.Enabled