VBA Excel 在文本框中提供当前日期
Posted
技术标签:
【中文标题】VBA Excel 在文本框中提供当前日期【英文标题】:VBA Excel Provide current Date in Text box 【发布时间】:2011-08-18 00:57:20 【问题描述】:当用户单击宏按钮时,会出现一个对话框。这个对话框大部分都是填写的(日期、电子邮件、生产者、网站等都填写),所有用户需要做的就是输入他们的名字。问题是输入的日期是静态的,所以如果我输入“3/3/11”,它将保持这种状态,直到有人更改它。
我想知道是否有某种方法可以使该文本框始终显示当前日期(除非用户出于某种原因决定更改它)。我尝试将不同的内容放入文本框的“值”部分(例如“getDate()”和“= Date()”),但到目前为止还没有成功。
谢谢,
杰西·斯莫莫
【问题讨论】:
【参考方案1】:我知道这是非常老的帖子,但我以前用过这个
您可以随时调整以激活。现在方法是另一种方法。只是一种选择
Private Sub UserForm_Initialize()
Textbox1.Text = Format(Now(), "mmddyyyhhmmss")
End Sub
【讨论】:
【参考方案2】:实际上,它并没有看起来那么复杂。
Sub
today_1()
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveCell.Value = Date
End Sub
【讨论】:
这没有回答原始问题。此外,您正在设置单元格公式,然后在下一步中将其覆盖。【参考方案3】:你很亲密。在UserForm_Initialize()
事件处理程序中添加此代码:
tbxDate.Value = Date
【讨论】:
你会把代码放在哪里?用户表单只是弹出,但没有地方实际分配值。这只是我之前输入的预分配值以及用户输入的任何值。我也不想在输入所有值后更改值,以防万一这不是用户想要的。感谢您的帮助 在项目资源管理器中右键单击表单并打开代码,然后在 UserForm_Initialize() 事件处理程序中添加代码【参考方案4】:这是一个更简单的版本。在要显示日期的单元格中,只需键入
=Today()
将单元格格式化为您想要的日期格式,并且 Bob 是您的叔叔。 :)
【讨论】:
这可以作为单元格中的公式使用,但问题是针对文本框,因此它需要是 VBA 函数。 另外,=today() 是一个 volatile 函数,这意味着重新计算链中引用该单元格的任何内容也会变为 volatile。避免!【参考方案5】:在显示表单时从代码中设置值,而不是在文本框的设计时属性中。
Private Sub UserForm_Activate()
Me.txtDate.Value = Format(Date, "mm/dd/yy")
End Sub
【讨论】:
【参考方案6】:使用表单初始化事件,例如:
Private Sub UserForm_Initialize()
TextBox1.Value = Format(Date, "mm/dd/yyyy")
End Sub
【讨论】:
在我问这个问题之前,我最初尝试过。我想我将该代码放在错误的区域。以下是发生的情况:用户单击宏按钮,该按钮打开用户表单,用户输入任何内容并单击“运行”按钮。我会在用户表单打开之前输入此代码吗?如果是这样,我会收到运行时错误“424”所需的对象。谢谢 右键单击表单设计器并选择查看代码。把上面的代码放在那里。将TextBox1
更改为您的文本框的名称。
酷豆,它奏效了。当我转到“查看代码”时,它会自动转到“UserForm_Click()”,所以我只是将其更改为“UserForm_Activate()”。谢谢
我才意识到你一开始就是这么告诉我的。我的错,再次感谢【参考方案7】:
执行此操作的简单方法是将要使用的日期函数放入单元格中,并使用 LinkedCell 属性从文本框链接到该单元格。
您可以尝试使用 VBA:
textbox.Value = Format(Date(),"mm/dd/yy")
【讨论】:
所以你的意思是,把它隐藏在宏按钮后面?现在我觉得在文本框的“值”部分输入的任何内容都被视为文字字符串,我会查看 LinkedCell,谢谢以上是关于VBA Excel 在文本框中提供当前日期的主要内容,如果未能解决你的问题,请参考以下文章