改变活动细胞填充颜色

时间:2017-02-13 18:03:03

标签: excel-vba vba excel

我有一张带有一些受保护纸张的工作簿 用户将数据输入每张纸的特定单元格 我希望活动单元格背景颜色在突出显示时更改 - 例如变为红色 - 并在取消选择时更改为原始颜色。
我想找到一个宏来将其分配给工作簿而不是每个工作表。

我认为这段代码很有用,但由于我是初学者,我不知道应该更改哪个参数以满足我的需求。

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

2 个答案:

答案 0 :(得分:0)

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

public static void calculateSum(int input) {
    String[] number = String.valueOf(input).split("");
    Map<Integer, Integer> map = Arrays.stream(number)
            .map(Integer::valueOf)
            .map(d -> (int) Math.pow(d, list.indexOf(d)))
            .collect(Collectors.toMap(d));
}

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

答案 1 :(得分:0)

这是我发现的最简单的代码,用于设置背景和活动单元格颜色。 注意:把它放进去(Thisworkbook)

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"