【问题标题】:Excel VBA Static (Non-Volatile) Variable - UserformExcel VBA 静态(非易失性)变量 - 用户窗体
【发布时间】:2016-10-28 20:30:31
【问题描述】:

你好 Stack Overflow -

在 Excel 2010 VBA 中使用用户表单时,我有一个名为“reviewerName”的文本框,它应该由用户设置一个默认值。现在我的默认设置为:

Private Sub userform_initialize()
    reviewerName.text = "Your name here"
End Sub

当我打开表格时,文本框上已经填写了“您的名字”。伟大的!但是如果其他人用他们的名字覆盖它,我如何将默认设置为新名称?如果我关闭并打开表单,reviewerName = "Bob" 可以吗?更新 reviewerName 变量的命令是什么,以便它是静态的并且可以在下次打开工作簿时使用?

谢谢!

【问题讨论】:

  • reviewName 不是变量。这是一个表单域。也许您只是想将完全相同的代码粘贴到 userform_activate() 事件中,而不是 userform_initialize()
  • 没有这样的持久化变量的命令。对于这样的表单,我通常会使用 Application.UserNameEnviron$("USERNAME") 之类的东西。
  • 是否可以通过命令按钮创建一个持久变量,将新用户名写入工作表上的单元格(1,1),然后打开查看单元格(1,1)在一张纸上?
  • 当然,您始终可以将数据存储在工作表中。

标签: excel static userform vba


【解决方案1】:

使用它,一种方法是让文本框引用电子表格上已经存在的值,从而有效地提供类似“静态”的变量。

Private Sub userform_initialize()
   reviewerName.text = Cell(1,24) 'form will look for a value in column X Row 1.
End Sub

那么当有提交表单的动作时,其中一个命令应该是:

Private Sub submit_click()
...
Cells(1,24) = reviewerName.text 'writes a value in column X row 1.
...
End Sub

当您再次打开表单时,它将从该单元格中提取值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2010-09-25
    • 2014-03-15
    • 1970-01-01
    相关资源
    最近更新 更多