excel中VBA代码问题(高手进)

我想在VBA中写一个代码实现这样的功能:
当我选中单元格时,这个单元格所在的行和列均标上底色,当选中其他单元格时,底色消失,被选中的单元格又被标上底色。
这个代码怎么写?请高手指点。

代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.EntireColumn.Address = Target.Address Then

        Cells.Interior.ColorIndex = xlNone

        Exit Sub

    End If

    If Target.EntireRow.Address = Target.Address Then

        Cells.Interior.ColorIndex = xlNone

        Exit Sub

    End If

    Cells.Interior.ColorIndex = xlNone

    Rows(Selection.Row & ":" & Selection.Row + Selection.Rows.Count - 1).Interior.ColorIndex = 35

    Columns(Selection.Column).Resize(, Selection.Columns.Count).Interior.ColorIndex = 20

End Sub

效果如下:

追问

我想请问一下,我有部分单元格被保护限制,所以调试的时候,显示1004错误,但是保护限制不方便取消,怎么办?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-06
应该使用到鼠标点击的事件吧
第2个回答  推荐于2016-05-22
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Interior.Pattern = xlNone
    Rows(Target.Row).Interior.Color = 49407
    Columns(Target.Column).Interior.Color = 49407
End Sub

追问

我想请问一下,我有部分单元格被保护限制,所以调试的时候,显示1004错误,但是保护限制不方便取消,怎么办?

追答Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    Cells.Interior.Pattern = xlNone
    Rows(Target.Row).Interior.Color = 49407
    Columns(Target.Column).Interior.Color = 49407
End Sub

追问

貌似修改后,不显示底色的。

实际上,如图片所示,我标示黄色的是未锁定的单元格,其余没有标注底色的是锁定单元格。

本回答被提问者采纳
相似回答