我正试图阻止用户粘贴我正在开发的模板中的值之外的其他内容。我使用宏来始终粘贴工作表中的值(见下文)。当用户切换到另一个工作簿时,应禁用此宏。 问题是我在激活另一个工作簿时遇到错误91.
'模块中的宏
Sub AlwaysPasteValues()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
'此工作簿中的代码
Public wb As Workbook
Private Sub Workbook_Activate()
Application.MacroOptions Macro:="AlwaysPasteValues", Description:="AlwaysPasteValues", ShortcutKey:="v"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set wb = Nothing
End Sub
Private Sub Workbook_Deactivate()
With wb
.MacroOptions Macro:="AlwaysPasteValues", Description:="AlwaysPasteValues", ShortcutKey:=""
End With
End Sub
Private Sub Workbook_Open()
Set wb = ThisWorkbook
End Sub
答案 0 :(得分:0)
您正在更改.MacroOptions
wb
上的MacroOptions
作为属性不存在。 Application
适用于Activate
。使用与Private Sub Workbook_Deactivate()
Application.MacroOptions Macro:="AlwaysPasteValues", Description:="AlwaysPasteValues", ShortcutKey:=""
End Sub
相同的代码,您应该做得很好。
{{1}}