VBA代码,仅允许在excel模板中粘贴特殊内容
嗨 我使用的Excel模板中的列具有不同的公式和格式,我不希望在粘贴其他Excel工作表中的内容时替换这些格式VBA代码,仅允许在excel模板中粘贴特殊内容,excel,vba,Excel,Vba,嗨 我使用的Excel模板中的列具有不同的公式和格式,我不希望在粘贴其他Excel工作表中的内容时替换这些格式 谁能给我提供一个VBA代码,我将把它粘贴到VBA编辑器中,excel模板中的所有粘贴操作都将是特殊的粘贴操作?您应该尝试在工作簿中使用事件。抱歉,如果我的翻译与您的Excel不一致,但我有MS Office的波兰语版本。但是,如果按CTRL+F11并在“项目”窗格中打开VB编辑器,则应该有类似“Microsoft Excel对象”的对象,并且这些对象对应于电子表格和工作簿。现在,在本工
谁能给我提供一个VBA代码,我将把它粘贴到VBA编辑器中,excel模板中的所有粘贴操作都将是特殊的粘贴操作?您应该尝试在工作簿中使用事件。抱歉,如果我的翻译与您的Excel不一致,但我有MS Office的波兰语版本。但是,如果按CTRL+F11并在“项目”窗格中打开VB编辑器,则应该有类似“Microsoft Excel对象”的对象,并且这些对象对应于电子表格和工作簿。现在,在本工作簿中放置一个代码
Option Explicit
Private Sub WorkBook_Open()
MsgBox "this happens when workbook is opened"
Application.OnKey "^v","my_function"
End Sub
当按下此组合键时,此代码将覆盖CTRL+V并运行my_函数()。鉴于上述功能,您现在可以插入新模块并在其中添加子模块,例如
Option Explicit
Sub my_function()
MsgBox "you have pressed ctrl+v"
Selection.PasteSpecial Paste:=xlPasteForumlas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
有关活动的更多信息,请参见
如果上述代码不起作用,请检查Application.EnableEvents的值,如有必要,请在即时窗口中更改其值
此外,在表1中,您可以尝试对更改事件进行处理。使用此事件,您可能会阻止excel更改样式,但第一个解决方案应该更易于实现。下面是更改事件的代码
Option Explicit
Private Sub WorkSheet_Change(ByVal Target As Range)
MsgBox "the value was changed"
End Sub
希望有帮助
Excel中事件的一些链接