【问题标题】:How to reload userform when button is clicked?单击按钮时如何重新加载用户表单?
【发布时间】:2021-12-30 04:57:31
【问题描述】:

我有 2 个用户窗体按预期工作,除了当我关闭 form2 并重新填写 form1 并按“添加”时,它不会让我回到 form2 的开头。它显示了我之前的最后一部分。

当我按下 form2 上的关闭按钮时,我希望它在下次单击 Add on form1 时重新加载。

'Public because we want it to be active for all macros.
'Aim to stopped a loop when user click on a button
Public stopped, Non As Boolean 

Public Sub closebut_Click()
Load Addform
Addform.Hide
End Sub

Private Sub savebut_Click()

Dim ws As Worksheet
Dim newrow As ListRow

Set ws = ThisWorkbook.Worksheets("New Product")

Set tbl = ws.ListObjects("NewMat")

erow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0).Row

ws.Cells(erow, 1).Value = Me.EAN.Value
ws.Cells(erow, 2).Value = Me.MatCode.Value
ws.Cells(erow, 3).Value = Me.Des.Value

Do While stopped = True

Loop
Me.Label1.Visible = False
Me.Label2.Visible = False
Me.Label3.Visible = False
Me.Label4.Visible = True
Me.EAN.Visible = False
Me.MatCode.Visible = False
Me.Des.Visible = False
Me.closebut.Visible = True
Me.savebut.Visible = False

End Sub

Private Sub UserForm_initialize()

Do While stopped = True

Loop
Me.Label1.Visible = True
Me.Label2.Visible = True
Me.Label3.Visible = True
Me.Label4.Visible = False
Me.EAN.Visible = True
Me.MatCode.Visible = True
Me.Des.Visible = True
Me.closebut.Visible = False
Me.savebut.Visible = True
End Sub

【问题讨论】:

  • 你的问题不是很清楚,在使用的表格识别方面。提到的两种形式中的哪一种是Addform?表格 2?那么,savebut_Click() 代码存在于哪种形式上?是上面提到的“添加”吗?如果不是,既然您告诉我们“我希望它在下次单击 Add on form1 时重新加载”,您应该显示您认为应该“显示”所需表单的代码的哪一部分......
  • 嗨,对不起,Addform 是 form2 一个代码被放入“Scan”,它是 form1,如果它没有被识别,那么用户将按下一个按钮添加打开“Addform”的代码,代码复制进入这里并输入更多细节。然后用户按下“Savebut”,只显示“label4”和“closebut”。单击关闭时,“addform”将被隐藏并显示“scan”表单。下次在第一个循环之后按下“添加”按钮而不是在开始时加载“addform”以获取额外的细节,它在最后加载并且只显示“label4”和“closebut”。
  • 我需要'''Public Sub closebut_Click() Load Addform Addform.Hide End Sub''' 基本上说刷新“addform”到开头并隐藏,以便下次加载“ addform”在开头
  • 我听不懂,对不起...很多话与我的澄清问题无关。 如果无法识别,则用户将按下按钮添加打开“Addform”的代码是什么意思?什么是“认可”?如何“添加代码”?您的应用程序是否编写代码?它是一个密码,因为你不向我们展示它吗?还是它在问题的某个地方而我错过了它?如果是这样,请指出正确的方向。
  • 仍然有点困惑,但是在 form1 的 Add 按钮中,尝试 Unload AddForm: AddForm.Show,它应该重新初始化 AddForm 的新实例。不要尝试在关闭按钮中刷新 AddForm,只需将其隐藏即可。

标签: excel vba userform


【解决方案1】:

尝试在您的用户表单显示事件中使用使用 vbModeless。

类似这样的:

Userform1.Show (vbModeless)

【讨论】:

    【解决方案2】:

    在 Userform2 事件中选择 UserForm_Deactivate 并写 Unload Me 它将关闭 Userform2 ,当您打开 Userform2它会重新加载。对你有帮助吗

    Private Sub UserForm_Deactivate()
    Unload Me
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2019-09-09
      • 1970-01-01
      • 2017-04-30
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多