我设置了一个工作表,仅将某些单元格解锁才能在其他情况下锁定的工作表上进行编辑。所有这些单元格最初都被染成黄色,并且是空的。我的目标是让单元格在输入任何数据时从黄色的基色变为绿色,并在包含任何类型的数据的情况下保持绿色,但是如果删除了数据,则将其变为黄色。我已经为此编写了代码,但我看不出问题出在哪里,所以我一定缺少一些东西,因为该代码无法实现我想要的功能,而只会得到一条错误消息。该代码位于我的主要工作簿代码中。
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
If Target.Worksheet.Index = 3 Then
If Not IsEmpty(Target) Then
Target.Interior.ColorIndex = 4
Else: Target.Interior.ColorIndex = 6
End If
End If
End Sub
我得到的错误是“运行时错误“ 1004”:应用程序定义或对象定义的错误,发生在第5行: 否则:Target.Interior.ColorIndex = 6。 如果有人可以帮助我,我将不胜感激!
答案 0 :(得分:0)
几天前,我遇到了同样的问题。问题是当工作表受到保护时,无法更改特定单元格的格式。单元是被锁定还是解锁都没有关系。
更改颜色的一种简单方法是使用条件格式。 1.选择要格式化的单元格 2.设置新规则,以便该单元格为空时填充为黄色,当填充时填充为绿色。
=A1="" then format yellow
=A1<>"" then format green
您可以尝试的另一件事是,当您希望工作表变成新颜色时,将其解锁并锁定。但是,我认为这仅在使用宏的情况下有效。
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
Dim Destino As Workbook
Destino.ActiveShee.Unprotect("password")
If Target.Worksheet.Index = 3 Then
If Not IsEmpty(Target) Then
Target.Interior.ColorIndex = 4
Else: Target.Interior.ColorIndex = 6
End If
End If
Destino.ActiveShee.protect("password")
End Sub
这些是我为您提供的答案