我有一个启用宏的受保护工作簿,允许用户在所有工作表上仅编辑某些字段或行(150到200)。
令人担忧的是我无法在可编辑字段上设置格式,因此当用户在字段上复制任何内容时,它会采用源格式并使页面混乱。
我尝试使用以下内容,但这并没有帮助。请建议。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Target.PasteSpecial xlPasteValues
Application.CutCopyMode = True
End Sub
答案 0 :(得分:3)
试一试:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Row >= 150 And Target.Row <= 200 Then
Dim vNewValues as Variant
NewValues = Target
Application.EnableEvents = False
Application.Undo
Target = NewValues
Application.EnableEvents = true
End If
End Sub
它的工作原理是将新值(复制或输入到单元格中)存储到数组中,然后执行撤消操作,这将删除操作(以及任何不需要的格式化),然后只放置值(来自存储的数组)进入范围。
If
条件可能需要根据您的实际要求进行调整。
答案 1 :(得分:1)
Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
只应复制值而不从初始范围复制格式。