Excel 365表单中添加Date & Time Picker的技术求助
在Excel 365表单中添加日期时间选择器的实用方案
方法1:用内置控件快速实现
Excel 365可以调出隐藏的日期时间选择控件,步骤如下:
- 右键顶部菜单栏,选择「自定义快速访问工具栏」
- 在「选择命令」下拉框里选「不在功能区中的命令」,找到「其他控件」添加到快速访问栏
- 点击快速访问栏的「其他控件」,找到「Microsoft Date and Time Picker Control 6.0 (SP6)」(找不到的话,可能需要安装对应控件组件)
- 在工作表上画出控件,右键控件选「属性」,设置
LinkedCell为你要填入日期的单元格,这样选完时间会自动同步到单元格
方法2:VBA自定义UserForm(灵活可控)
如果内置控件不好用,自己写个选择器更靠谱:
- 按
Alt+F11打开VBA编辑器,插入一个UserForm,添加这些控件:- MonthView控件(找不到的话,点开发工具→附加控件,勾选「Microsoft MonthView Control 6.0」)
- 两个ComboBox(用来选小时、分钟)
- 确定、取消按钮
- 给UserForm贴下面的代码:
' 初始化时间选项 Private Sub UserForm_Initialize() Dim i As Integer ' 添加小时选项(0-23) For i = 0 To 23 Me.ComboBox1.AddItem Format(i, "00") Next i ' 添加分钟选项(按5分钟间隔,要细调改Step值) For i = 0 To 59 Step 5 Me.ComboBox2.AddItem Format(i, "00") Next i ' 默认选中当前时间 Me.ComboBox1.Value = Format(Time, "HH") Me.ComboBox2.Value = Format(Time, "NN") End Sub ' 确定按钮点击事件 Private Sub CommandButton1_Click() Dim selectedDT As Date ' 拼合日期和时间 selectedDT = Me.MonthView1.Value + TimeValue(Me.ComboBox1.Value & ":" & Me.ComboBox2.Value & ":00") ' 写入当前点击的单元格 ActiveCell.Value = selectedDT ' 设置单元格格式为日期时间 ActiveCell.NumberFormat = "yyyy-mm-dd hh:mm:ss" Unload Me End Sub ' 取消按钮点击事件 Private Sub CommandButton2_Click() Unload Me End Sub
- 给工作表加双击触发事件(比如限定A-C列生效):
在对应工作表的代码窗口贴这段:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.Range("A:C")) Is Nothing Then Cancel = True ' 取消默认双击编辑 UserForm1.Show ' 弹出选择器 End If End Sub
方法3:无控件纯公式+VBA辅助(适合轻量化需求)
不想装控件的话,用Office 365的动态数组做个简易日历:
- 在空白区域(比如E1:G10)输入公式生成当月日历:
=SEQUENCE(6,7,DATE(YEAR(TODAY()),MONTH(TODAY()),1)-WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY()),1),2)+1) - 用条件格式高亮当前日期,再加个VBA点击事件:点击日历上的日期就自动填入目标单元格,再配合两个单元格选小时和分钟,最后用公式拼合完整的日期时间。
内容的提问来源于stack exchange,提问作者MEC
相关产品推荐
相关产品推荐

