VBA窗体.show,在首次调用后,可能会出现不重新初始化的BUG

VBA窗体.show以后,首次会进行初始化

即会运行过程:Private Sub UserForm_Initialize()

此时窗体被载入内存,此后重复进行窗体.show操作,因窗体已经被载入内存

所以不会再初始化,解决的办法是unload卸载,即:
 

Sub 新增员工()
  strStatus = ""
  Unload frmNew
  frmNew.Show
  Sheets("主界面").Activate
End Sub 

Sub 新增员工()
  strStatus = ""
  Unload frmNew
  frmNew.Show
  Sheets("主界面").Activate
End Sub

附窗体生命周期:

用户窗体装载和卸载的顺序是:装载(Load)—显示(Show)—隐藏(Hide)—卸载(Unload)。卸载会清除用户窗体模块中的所有的变量——类似于停止了一个过程。用户已经输入的任何数值都将丟失,控件将恢复为属性窗口中输入的缺省值。如果想保存它们的值,则需要在卸载用户窗体前进行保存。由此可以看出装载(Load)及卸载(Unload)间(含)的时间就是一个窗体的生命周期。

以下为全选字符

Private Sub txtBirthday_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  If Not IsDate(txtBirthday.Value) Then
    MsgBox "请输入正确的出生年月", , "提示"
    txtBirthday.SelStart = 0
    txtBirthday.SelLength = Len(txtBirthday.Value)
    Cancel = True
  End If
End Sub

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值