Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel在文本框中提供当前日期_Excel_Vba_Date_Textbox - Fatal编程技术网

VBA Excel在文本框中提供当前日期

VBA Excel在文本框中提供当前日期,excel,vba,date,textbox,Excel,Vba,Date,Textbox,当用户单击宏按钮时,会出现一个对话框。此对话框主要是填写的(填写日期、电子邮件、制作人、网站等),用户只需输入姓名即可。问题是输入的日期是静态的,所以如果我输入“3/3/11”,它将一直保持这种状态,直到有人更改它 我想知道是否有办法让文本框始终显示当前日期(除非用户出于任何原因决定更改它)。我曾尝试将不同的内容放入文本框的“Value”部分(例如“getDate()”和“=Date()”),但迄今为止都没有成功 谢谢, Jesse Smotheron简单的方法是将要使用的日期函数放在单元格中,

当用户单击宏按钮时,会出现一个对话框。此对话框主要是填写的(填写日期、电子邮件、制作人、网站等),用户只需输入姓名即可。问题是输入的日期是静态的,所以如果我输入“3/3/11”,它将一直保持这种状态,直到有人更改它

我想知道是否有办法让文本框始终显示当前日期(除非用户出于任何原因决定更改它)。我曾尝试将不同的内容放入文本框的“Value”部分(例如“getDate()”和“=Date()”),但迄今为止都没有成功

谢谢,


Jesse Smotheron

简单的方法是将要使用的日期函数放在单元格中,并使用LinkedCell属性从文本框链接到该单元格

在VBA中,您可以尝试使用:

textbox.Value = Format(Date(),"mm/dd/yy")

你很接近。将此代码添加到
UserForm\u Initialize()
事件处理程序中:

tbxDate.Value = Date

使用表单初始化事件,例如:

Private Sub UserForm_Initialize()
    TextBox1.Value = Format(Date, "mm/dd/yyyy")
End Sub

在显示表单时,而不是在文本框的design timeProperties中,从代码设置值

Private Sub UserForm_Activate()
    Me.txtDate.Value = Format(Date, "mm/dd/yy")
End Sub

这里有一个更简单的版本。在要显示日期的单元格中键入

=Today()      

将单元格格式化为所需的日期格式,并且Bob是您的叔叔。:)

事实上,它没有看上去那么复杂

Sub 
  today_1()
  ActiveCell.FormulaR1C1 = "=TODAY()"
  ActiveCell.Value = Date
End Sub

我知道这是一个非常古老的帖子,但我以前用过这个

您可以随时调整以激活。现在方法是另一种方法。只是一个选择

Private Sub UserForm_Initialize()

Textbox1.Text = Format(Now(), "mmddyyyhhmmss")

End Sub

你是说,把它藏在宏按钮后面?现在,我觉得在文本框的“值”部分输入的任何内容都被视为文本字符串,我将查看LinkedCell,谢谢,您将代码放在哪里?用户表单只是弹出,但没有地方实际分配值。这只是我之前输入的预分配值,以及用户输入的任何值。我也不想在输入所有值后更改该值,以防用户不希望这样做。感谢project explorer中的帮助右键单击表单并打开代码,然后将代码添加到UserForm_Initialize()EventHandler中。在我问这个问题之前,我已经尝试过了。我想我把代码放错地方了。发生的情况如下:用户单击宏按钮,按钮打开用户窗体,用户输入任何内容并单击“运行”按钮。我会在用户窗体打开之前输入此代码吗?如果是这样,我会得到一个运行时错误“424”对象。谢谢右键单击表单设计器并选择“查看代码”。把上面的代码放在那里。将
TextBox1
更改为文本框的名称。酷豆,它起作用了。在我转到“查看代码”时,它会自动转到“UserForm\u Click()”,所以我只是将其更改为“UserForm\u Activate()”。谢谢你,我刚意识到你一开始就是这么告诉我的。我的错,再次感谢。这将在单元格中用作公式,但问题是用于文本框,因此它需要是VBA函数。此外,=today()是一个易失函数,这意味着重新计算链中引用该单元格的任何内容也会变为易失函数。避开!这并不能回答原来的问题。此外,您正在设置单元格公式,然后在下一步中覆盖它。