我正在为学生创建日历样式的时间表。
我们有很多课程,所以为了减轻时间表,我做了一个星期天开始日历的形式和日历中的依赖下拉使类。
例如,水平地三个级别,第一级别“初学者”,第二级别“AndroidSmartphone”,第三级别“相机”。
因此,我必须根据特定的单个单元格值更改单元格颜色,并应用于多个单元格。
也许用户会在工作表中输入多个值,例如全天; 1,2,3,周期,相同的类。
用户可能会改变主意,并立即删除这些类的值,在这种情况下,可能会删除3乘3的单元格。
下面的代码显示了错误代码13。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim trlRed As Long
Dim adrBlue As Long
trlRed = RGB(230, 37, 30)
adrBlue = RGB(126, 199, 216)
If Not Intersect(Target, Range("M31:AM53")) Is Nothing Then
For Each cell In Target.Cells
If cell.Value = "Session" And cell.Offset(0, -2).Value = "Trial" Then
cell.Offset(0, -2).Resize(1, 3).Interior.Color = trlRed
ElseIf cell.Value = "AndroidSmartphone" And cell.Offset(0, -1).Value <> "trial" Then
cell.Offset(0, -1).Resize(1, 3).Interior.Color = adrBlue
Else
cell.Resize(1, 3).Interior.ColorIndex = xlColorIndexNone
End If
Next cell
End If
End Sub
我想创建的工作表,可以动态改变单元格颜色的基础上的值,单个单元格,多个单元格,并删除值。
1条答案
按热度按时间6l7fqoea1#
您的代码检查
Target
中的任何单元格是否也在M31:AM53中,然后循环遍历Target
中的 * 所有 * 单元格。您应该只循环遍历感兴趣范围内的Target
单元格。如果你循环所有的
Target
单元格,你可能会尝试访问(例如)cell.Offset(0, -2)
的列A或B中的单元格。