【问题标题】:getting an odd text box error when resetting form?重置表单时出现奇怪的文本框错误?
【发布时间】:2020-07-16 14:27:45
【问题描述】:

使用此代码(如下)重置用户表单中的所有字段:

Private Sub cmdReset_Click()
Dim iControl As Control
For Each iControl In Me.Controls
    If iControl.Name Like "txt*" Then iControl = vbnullstring
    If iControl.Name Like "cmb*" Then iControl = vbnullstring
Next
End Sub

我有一个文本框(转换为 %)没有重置,但显示如下:

-nan(ind)00.00%

知道如何防止这种情况并清除文本框吗?

【问题讨论】:

  • 通过有效地调用iControl = ...,您正在设置控件的.Value 属性(默认属性)。由于 value 属性是一个变体,你应该将它设置为 Null 而不是 vbNullString。后者仅用于字符串。
  • 另外,除非您只想清除特定控件,否则要清除所有文本框和组合,您可以致电If TypeName(ctl)="TextBox" Or TypeName(ctl) "ComboBox" Then ...
  • @KostasK。嘿,非常感谢!将 iControl 设置为 Null 有效。不确定您是否想创建一个答案,以便我给您信用,但谢谢!
  • 很高兴它已排序。您可以发布有关如何解决问题的答案并接受它。然后你的帖子就完成了。一旦你这样做,我会删除这条评论。 :)

标签: vba userform


【解决方案1】:
Private Sub cmdReset_Click()
Dim iControl As Control
For Each iControl In Me.Controls
    If iControl.Name Like "txt*" Then iControl = Null
    If iControl.Name Like "cmb*" Then iControl = Null
Next
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2018-05-03
    相关资源
    最近更新 更多