【问题标题】:change active cell fill color更改活动单元格填充颜色
【发布时间】:2017-02-13 18:03:03
【问题描述】:

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

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

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

【问题讨论】:

  • stackoverflow.com/help/how-to-ask 请向我们展示您在寻求帮助之前所做的一些代码尝试
  • 朋友要考试吗?如果我知道答案我就不会再问了。我在网上搜索了一些,但没有一个能解决我的问题。
  • ?帮助其他人重现问题?你的问题到底是什么? SO 不是“为您的服务编写代码”。这只是一个建议,所以有人可能会回答你的问题.. 不是我太在乎
  • 您必须检测单元格的激活。查看模块 ThisWorkbook 中的私有子,例如 Workbook_SheetSelectionChange 以将操作应用于整个工作簿
  • 在 Excel 中搜索例程时,应从 google 中的“VBA EXCEL”字样开始,然后是您要查找的内容。例如,“vba excel 更改活动单元格颜色”。在 google 中尝试一下,你会发现大约 50 个例程。做你想做的最简单的方法是将以下内容放入你的工作表模块Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlNone ActiveCell.Interior.ColorIndex = 3 End Sub

标签: excel vba


【解决方案1】:

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

    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 更改为您要使用的任何颜色索引。

【讨论】:

  • 它确实适用于受保护的工作表。第二行写着“ActiveSheet.Uprotect "password"”是取消保护工作表的内容。如果您没有使用密码,那么您可以删除“密码”部分。如果您使用的是密码,请将密码一词替换为您的真实密码。第二,除了白色之外,细胞有不同的颜色吗?此代码自动将取消选择的单元格更改为白色。
  • 1-您是对的,但我在您发布之前对您的帖子发表了评论。 2- 起初我以为它会变成 no fill 因为白色看起来像那样。 3-您确定您的代码在取消选择后返回原始活动单元格颜色吗?
  • 你知道我还没有得到我的答案。最初有些单元格是绿色的,有些是蓝色的。但在应用代码后,所有颜色都变为相关颜色代码而不是原始颜色代码颜色。
【解决方案2】:

这是我发现的设置背景和活动单元格颜色的最简单的代码。 注意:放入(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"

【讨论】:

  • 我只想更改活动单元格的颜色,但找不到正确的代码。如果有人知道请修复它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 2014-06-21
  • 2021-11-02
  • 2020-01-11
  • 1970-01-01
  • 2018-04-11
相关资源
最近更新 更多