【问题标题】:How to keep background color when typing in a cell?输入单元格时如何保持背景颜色?
【发布时间】:2014-05-01 22:49:45
【问题描述】:

我不喜欢 Excel 2010 的白色工作表背景,因此我通过选择 Page Layout-> Background 并选择 *.jpg 将其设置为使用 25x25 像素 *.jpg 的炭灰色。

然后我将工作表字体设置为黄色以获得最大对比度。看起来不错!

但随后出现了问题。当我选择一个单元格并开始输入时。当我开始输入时,单元格的背景颜色变为白色。使用黄色字体时,我看不到白色背景的文字(没有对比)。

如何在单元格中输入深色背景颜色?它不必是确切的 *.jpg 背景颜色 - 它可以是任何深色以便我能看到黄色文字。

我假设 VBA 宏可以解决问题。我找不到可以设置内部颜色的OnTypingInCell 事件。我能找到的最接近的是Workbook_SheetSelectionChange,但它似乎在输入单元格之前立即被调用。

【问题讨论】:

  • 宏在“编辑模式”下不会运行
  • 为什么不单击单元格,然后单击公式栏,然后在公式栏中键入。
  • 那么使用SelectionChange 事件并设置Target.Interior.Color 有什么问题。这将在您进入似乎是您想要的单元格后立即设置背景,不是吗?
  • @Tim:什么是“编辑模式”?你的意思是当我在单元格中输入时?
  • @Gary'sStudent:因为这是一种解决方法。我想要一个解决方案。

标签: vba excel-2010


【解决方案1】:

这似乎适用于您的问题(使用深灰色和黄色)

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Target.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.499984740745262
        .PatternTintAndShade = 0
    End With
    With Target.Font
        .Color = -16711681
        .TintAndShade = 0
    End With

End Sub

【讨论】:

  • 您自己尝试过这个解决方案吗?我试过了,并没有解决问题。请自己尝试一下,如果它对您有用,请告诉我。
  • 是的,它对我有用,但我有 Excel 2007,所以这个功能可能在 2010 年发生了变化
【解决方案2】:

***解决方案***

0) 设置背景颜色click here

1) 打开 VBA 编辑器 (Alt-F11)

2) 右键单击​​ ThisWorkbook 并查看代码

3) 在代码窗口中从下拉列表中选择工作簿

4) 在代码窗口中,从下拉列表中选择 SheetSelectionChange

5) 在代码窗口中添加如下代码:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Static OldRange As Range

    If Cells(1, 1).Interior.ColorIndex <> xlColorIndexNone Then
        Cells(1, 1).Interior.ColorIndex = xlColorIndexNone
        Cells(1, 1).Font.ColorIndex = xlColorIndexNone
        Cells(1, 1).Borders.ColorIndex = xlColorIndexNone
    End If

    Selection(1, 1).Activate
    On Error Resume Next
    OldRange.Interior.ColorIndex = xlColorIndexNone
    OldRange.Font.ColorIndex = xlColorIndexNone
    OldRange.Borders.ColorIndex = xlColorIndexNone
    Target.Interior.ColorIndex = 48 ' background color
    Target.Font.ColorIndex = 6 ' font color
    Target.Borders.ColorIndex = 9 ' border color
    Set OldRange = Target
End Sub

***奖金***

问:如何设置 Excel 模板?

答:好问题!如果您想打开 Excel 并查看您的新背景(每次!),请执行以下步骤:

0) 创建两个文件夹:

    C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\
    C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\background\

1) 打开 Excel 并保存以下三个文件:

C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\Book.xltm
C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\Sheet.xltm
C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\background\<filename of background color>

2) 打开Book.xltm并使用&lt;filename of background color&gt;配置后台

3) 在Book.xltm 中配置您在 Excel 打开时需要的任何其他项目。

4) 将Book.xltm 复制粘贴到Sheet.xltm 并删除Sheet.xltm 中的多余表格(仅一张)

5) 保存并关闭excel

6) 打开 excel -> 您的更改现已到位

注意:Sheet.xltm 是您在 Excel 中单击“新工作表”按钮时使用的内容

【讨论】:

  • 我选择使用 *.xltm 是因为我喜欢宏。您可能想尝试非宏模板文件。
  • 更新:这个解决方案很糟糕。不是因为宏。但是因为 Excel 开发人员以其无限的智慧(讽刺是必要的)决定运行宏将清除撤消和重做堆栈。感谢微软。请解决这个问题。其他人注意:在 Microsoft 解决此问题之前,您应该忽略我的解决方案。除非您想使用 VBA 实现自己的 reno 和撤消堆栈!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 2022-12-12
  • 2015-11-29
  • 1970-01-01
  • 2011-04-03
  • 2011-09-25
  • 1970-01-01
相关资源
最近更新 更多