Excel VBA自动将分号更改为冒号

时间:2018-10-25 14:25:58

标签: excel vba

我制作了一个Excel工作簿,人们可以在其中键入工作时间。是否可以将分号映射到冒号?如果用户尝试输入分号,则应在冒号后面加上一个冒号。

在工作簿处于活动状态时,我很想使用Application.OnKey "^x", ""来禁用剪切功能。我尝试了类似Application.OnKey ";", ":"之类的方法,但无法正常工作。

2 个答案:

答案 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