受保护的工作表允许通过复制和粘贴来编辑单元格格式

时间:2014-02-18 14:24:55

标签: excel vba excel-vba formatting

我有一张受保护的工作表。只有一些单元格是可编辑的,用户可以写入但不能像往常一样更改单元格格式。如果他决定将数据从另一个工作表复制并粘贴到我的工作表中,那么另一个工作表的单元格格式将应用于我的单元格。我希望我的单元格在值上可编辑,但它们的单元格格式根本不可编辑!我怎么能这样做?

提前致谢!

2 个答案:

答案 0 :(得分:4)

我使用此方法只是在用户决定复制并粘贴格式受保护的单元格时才粘贴值:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    If Application.CutCopyMode = xlCopy Then

        Application.EnableEvents = False

        Application.Undo
        Target.PasteSpecial Paste:=xlPasteValues

        Application.EnableEvents = True

    End If

End Sub

将任何粘贴撤消到工作表中并再次粘贴(仅限值,无格式化)。

答案 1 :(得分:1)

一种方法是使用worksheet_change事件来查看是否有任何单元格已更改:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("J2").Address Then
        'your code
    End If
End Sub

接下来将原始格式应用于已更改的单元格。