我正在创建一个Excel模板,它必须以某种方式格式化,但是使用它的人有一种从网页复制和粘贴格式到单元格的趋势。
我已经编写了一个分配给ctrl+v的宏,以更改粘贴命令,使其只粘贴值,并且我正在尝试使用application.onkey通过shift+insert调用相同的宏,但是,虽然ctrl+v仅粘贴值,但shift+insert仍在执行标准粘贴。
下面是我正在编写的代码:
Public Sub KeepDestinationFormatting()
'
' KeepDestinationFormatting Macro
'
' Keyboard Shortcut: Ctrl+v
'
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False
End Sub
Sub KeepDestinationFormatting1()
Application.OnKey Key:="+{INSERT}", Procedure:="KeepDestinationFormatting"
End Sub编辑
终于让它按我需要的方式工作了。下面是我使用的代码:
Sub Auto_Open()
Application.OnKey Key:="+{INSERT}", Procedure:="KeepDestinationFormatting"
End Sub
Sub KeepDestinationFormatting()
'
' KeepDestinationFormatting Macro
'
' Keyboard Shortcut: Ctrl+v
'
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True
End Sub发布于 2017-01-11 03:57:12
宏“不工作”,因为宏尚未运行。宏实际做的是分配组合键来调用过程,但由于您尚未运行宏,因此尚未分配它。将宏重命名为Auto_open,然后测试。
另外,粘贴代码对我不起作用,必须将其更改为
Selection.PasteSpecial Paste:=xlPasteValues编辑:粘贴整个代码:
Sub Auto_open()
Application.OnKey Key:="+{INSERT}", Procedure:="KeepDestinationFormatting"
Application.OnKey Key:="^v", Procedure:="KeepDestinationFormatting"
End Sub
Public Sub KeepDestinationFormatting()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub这样,您就可以在宏选项中取消指定热键。
发布于 2017-01-11 04:25:33
我试过你的代码了。它可以在没有Format:="Text"的情况下工作
替换
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= False使用
ActiveSheet.PasteSpecial Link:=False, DisplayAsIcon:=Falsehttps://stackoverflow.com/questions/41576421
复制相似问题