Excel VBA禁用从工作表中粘贴特定范围
问题描述:
我有一些Excel宏,人们在执行前手动粘贴到它的数据。Excel VBA禁用从工作表中粘贴特定范围
为了避免宏运行中的错误,我想禁用粘贴某些列的数据。
我
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Column = 7
Target.Column = 8
Target.Column = 12
End Sub
试过有人能指导我如何可能?
答
请尝试下面的代码,将其添加到您要禁用该用户粘贴到某些列的工作表中。
Private Sub Worksheet_Change(ByVal Target As Range)
' Restrict the user from deleting or Pasting to certain columns
Select Case Target.Column
Case 7, 8, 12
With Application
.EnableEvents = False
.Undo
MsgBox "Pasting to columns 'F' , 'G' or 'L' is not allowed", vbCritical
.EnableEvents = True
End With
Case Else
' do nothing/or something else
End Select
End Sub
是,阅读有关'Worksheet_Change'事件,是有人尝试在列“B”粘贴(在这个例子中),则内部检查,如果'Target.Column = 2',禁用粘贴过程 –
锁定单元格,你想脱离限制和保护工作表 – jsotola
@ShaiRado我看到我需要为此创建私有子,但在宏运行之前粘贴是**。有没有什么办法可以控制它而不创建新的子?我希望它在文件打开时处于活动状态 –