excel 更改活动单元格填充颜色

jhiyze9q  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(330)

我的工作簿中有一些受保护的工作表。
用户将数据输入到每个工作表的特定单元格中。
我希望活动单元格的背景色在突出显示时更改(例如更改为红色),在取消选择时恢复为原始颜色。
我希望找到一个宏,将其分配给工作簿而不是每个工作表。
我认为这段代码是有用的,但因为我是一个初学者,我不知道哪个参数应该改变,以适应我的需求。

Sub ColorCells()
    Dim Data As Range
    Dim cell As Range
    Set currentsheet = ActiveWorkbook.Sheets("Ekandari")
    Set Data = currentsheet.Range("C5:D5,F5:M5,L9")
    For Each cell In Data
        cell.Interior.ColorIndex = 3
    Next
End Sub
kuuvgm7e

kuuvgm7e1#

Mansour,这应该会有帮助。不幸的是,它不适用于整个工作簿。您需要将此代码添加到工作簿中的每个工作表。如果您没有密码,则需要删除第二行中的“password

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    ActiveSheet.Unprotect "password"

    On Error Resume Next
    Range("PrevCell").Interior.ColorIndex = 0

    ActiveCell.Interior.ColorIndex = 3
    With ActiveWorkbook.Names("PrevCell")
        .RefersTo = ActiveCell
    End With

    ActiveSheet.Protect Password:="password", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub

您需要做的唯一更改是,如果您不希望活动颜色为红色,则将3更改为您要使用的任何颜色索引。

46qrfjad

46qrfjad2#

这是我找到的最简单的设置背景和活动单元格颜色的代码。将其放入(此工作簿)

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.Unprotect "Password"
Sh.UsedRange.Interior.ColorIndex = 27   'change colorindex to select background color
Target.Interior.ColorIndex = 32         'change colorindex to select active cell color
ActiveSheet.Protect Password:="Password"
End Sub

如果不使用受保护的工作表,请删除

ActiveSheet.Unprotect "Password"

ActiveSheet.Protect Password:="Password"

相关问题