【发布时间】:2021-04-18 08:20:46
【问题描述】:
我创建了一个由文本框和下拉菜单组成的用户表单。这个想法是让用户完成文本框,然后点击“保存”,将输入的值粘贴到 Excel 工作簿中的相应单元格中。
由于下拉菜单中输入的信息会随时间而变化,因此我将文本框格式化为显示用户上次更改字段的时间。
为此,我在下拉菜单中创建了一个 _CHANGE 事件,并指定如果选择更改,则文本框必须应用 = NOW,从而显示日期和时间。这本身就可以正常工作。
初始化 USERFORM 时出现问题。它的代码包含一个用于下拉菜单的 .SETFOCUS 以显示其现有值。看起来好像 USERFORM_INITIALISE 上的 .SETFOCUS 充当下拉菜单上的 _CHANGE 事件,这会导致它在用户实际更改字段之前编辑日期和时间。
我该如何改变这一点?
Private Sub drop_down_menu_change()
textbox.Value = Now
End Sub
Private Sub UserForm_Initialize()
drop_down_menu.AddItem "1"
drop_down_menu.AddItem "2"
drop_down_menu.AddItem "3"
drop_down_menu.AddItem "4"
drop_down_menu.AddItem "5"
drop_down_menu.SetFocus
End Sub
下面是用户表单的截图和代码:
【问题讨论】:
-
“下拉菜单”是什么意思?不是组合框吗?
-
这就是我的意思,对不起。
-
我的回答代码没有解决你的问题吗?你测试了吗?