我有一个启用了宏的工作簿(受保护的工作表)。 允许用户向已解锁的单元格提供输入。
这里的问题是当用户从其他应用程序复制粘贴数据时,它将覆盖现有工作表上使用的格式,这会造成麻烦。
即使用户复制/粘贴,是否可以保留格式?
答案 0 :(得分:0)
1)为工作表上使用的各种格式创建自定义样式,并且(如果可能的话)名称范围为"样式"
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("STYLE")).Count = Target.Count Then
Target.Style = "STYLE"
End If
End Sub
此代码将检查,如果更改的单元格是"内部"风格范围。如果所有更改的单元格都在样式范围内 - 应用样式。如果保持范围命名与样式命名一致,则可以使用循环来完成。
答案 1 :(得分:0)
以下代码对我有用。它可以识别是否有人粘贴到单元格区域中,撤消粘贴并重新粘贴与目标格式匹配的
If Not Intersect(Target, Range("A1:D12")) Is Nothing Then
If Application.CommandBars("Standard").Controls("&Undo").Enabled = True Then
Dim UndoString As String
UndoString = Application.CommandBars("Standard").Controls("&Undo").List(1)
If Left(UndoString, 5) = "Paste" Then
Application.EnableEvents = False
Application.Undo
Target.Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
Application.EnableEvents = True
End If
End If
End If