我制作了一个Excel工作簿,人们可以在其中键入工作时间。是否可以将分号映射到冒号?如果用户尝试输入分号,则应在冒号后面加上一个冒号。
在工作簿处于活动状态时,我很想使用Application.OnKey "^x", ""
来禁用剪切功能。我尝试了类似Application.OnKey ";", ":"
之类的方法,但无法正常工作。
答案 0 :(得分:1)
您可以使用“工作表更改”事件来捕获用户输入,并用冒号替换分号,如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
For Each cell In Target
Target.Value = Replace(Target.Value, ";", ":")
Next cell
End Sub
仅当您在一张纸上监听用户输入时,此功能才起作用。如果您想听所有工作表,则可以在“工作簿更改”事件中执行类似的操作。
答案 1 :(得分:1)
将Replace()
对象的Range
方法用于其xlPart
参数,其值为lookAt
:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Replace what:=";", replacement:=":", lookat:=xlPart
End Sub