excel - InputBox 输入时间,带验证
问题描述
我希望当用户在 A 列的单元格中输入一个值时,应该弹出一个输入框询问时间。我希望 C 列中该输入框的输出与在 A 列中输入值的位置在同一行中。我希望每次在 A 中输入某些内容时都会发生这种情况。
- 如果 A1 已填满,则询问时间并放入 C1。
- 如果 A4 被填满,则询问时间并将其放入 C4。
我还想要如果时间没有输入或输入不正确(hh:mm),然后一个消息框说时间没有正确输入,然后循环回到输入框。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim xRtn As Variant
Set KeyCells = Range("A1:A100")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Do Until Not xRtn = 0 Or Format(xRtn, "hh:mm")
xRtn = Application.InputBox("Wat is de tijd dat het monster genomen is?" & vbNewLine & "Gebruik UU:MM" & vbNewLine & "Voorbeeld: 09:30", "Tijdnotatie")
Columns("C").Value = xRtn
If xRtn = 0 Then
If Not MsgBox("Een correcte tijdsnotatie is nodig om door te gaan. Klik op" & vbNewLine & "<Ok> om de tijd opnieuw in te vullen", vbOK + vbDefaultButton1 + vbExclamation, vbNullString) = vbOK Then
End If
End If
Loop
End If
End Sub
解决方案
您可以只自动输入时间,而不是为它弹出一个框,然后检查以确保它们没有搞砸。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Range("C" & Target.Row).Value = Format$(Now, "hh:mm")
End If
End Sub
推荐阅读
- google-apps-script - 使用谷歌表格公式检查appsscript项目触发器是否存在
- sql-server - 字符串日期格式 19-feb-01 到 yyyy-mm-dd 的问题 - SQL Server
- javascript - 如何在 React 和 Redux 中编辑表单?
- c# - .NET Core 中的配置检查
- ubuntu - Laravel 持续部署与 GitHub webhook
- reactjs - 将“离线插件”与 create-react-app 一起使用
- html - 设置 Angular Material Tooltip 的位置
- python - 获取 csv 文件中非唯一参数的值和行号
- azure-data-factory - 天蓝色数据工厂获取查找活动错误输出
- kentico - 迁移V11 -> V12后页面删除失败