Note: The other languages of the website are Google-translated. Back to English

在Excel中填充颜色时如何保留网格线?

众所周知,当我们为单元格填充背景色时,网格线也将被覆盖,在这种情况下,如何在填充Excel单元格中的背景色时保持网格线以显示以下屏幕截图。

doc保持网格线填充颜色1

保留网格线,同时使用VBA代码填充颜色


箭头蓝色右气泡 保留网格线,同时使用VBA代码填充颜色


通常,没有直接的方法可以让我们解决这个问题,但是在这里,我可以为您介绍一个VBA代码。 请执行以下操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 在左边 项目-VBA项目 窗格,双击 的ThisWorkbook 在扩展下 VBA项目,然后将以下VBA代码复制并粘贴到空白模块中:

VBA代码:在填充颜色时保留网格线

Dim xRgPre As Range
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If Not xRgPre Is Nothing Then DrawBorders xRgPre
    Set xRgPre = Target
End Sub
Private Sub DrawBorders(ByVal Rg As Range)
'Updateby Extendoffice 20160725
    Dim xCell As Range
    Application.ScreenUpdating = False
    For Each xCell In Rg
        If xCell.Interior.ColorIndex = xlNone Then
            With xCell.Borders
                If .ColorIndex = 15 Then
                    .LineStyle = xlNone
                End If
            End With
        Else
            With xCell.Borders
                If .LineStyle = xlNone Then
                    .Weight = xlThin
                    .ColorIndex = 15
                End If
            End With
        End If
    Next
    Application.ScreenUpdating = True
End Sub

doc保持网格线填充颜色2

3。 然后保存并关闭代码窗口,现在,当您为一系列单元格填充颜色时,网格线将自动显示。


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (16)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
神话般的修复!
该评论由网站上的主持人最小化
工作正常,但遗憾的是,每次我现在单击一个单元格时,工作表都会颤抖! 删除了 VBA,抖动停止了。 想知道为什么会发生这种情况?
该评论由网站上的主持人最小化
嗨,维克,
我的 Excel 工作簿中没有这个问题,您使用的是哪个 Excel 版本?
该评论由网站上的主持人最小化
Excel 2016 也是如此。我在几秒钟内被冻结并且大部分时间都处于空白状态,尤其是在选择许多单元格时。 这是一种耻辱,因为它确实可以完美地工作。
该评论由网站上的主持人最小化
工作,但如果你看到它必须纠正错误。
将 xRgPre 调暗为范围
Private Sub Workbook_SheetSelectionChange(ByVal Sh 作为对象,ByVal 目标作为范围)
出错时继续下一步
If Not xRgPre is nothing then DrawBorders xRgPre
设置 xRgPre = 目标


*************************************
应该读... 因为 If 语句只确保有一些东西可以设置为内存分配。

可以设置下面的下一行进行清理并且不允许内存泄漏。

Private Sub Workbook_SheetSelectionChange(ByVal Sh 作为对象,ByVal 目标作为范围)
出错时继续下一步
设置 xRgPre = 目标
If Not xRgPre is nothing then DrawBorders xRgPre
'为了确保不会发生内存泄漏
'清理不需要的内存分配。
设置 xRqPre = 无



祝你今天过得愉快..
该评论由网站上的主持人最小化
不适用于条件格式。 Set xRqPre = Nothing 给出错误:变量未定义(删除该行)。屏幕也在这里抖动,使用 2010。否则它是一个很酷的工具..
该评论由网站上的主持人最小化
仅使用标准颜色;)
该评论由网站上的主持人最小化
很酷,但是现在如果我填充一些单元格,然后按 Ctrl+Z 撤消,它将不起作用。 不会撤消。
该评论由网站上的主持人最小化
你好,安德鲁,
是的,上面的代码不支持撤销功能,你应该手动不填充颜色来撤销你的工作。
谢谢!
该评论由网站上的主持人最小化
另一个修复,如果你不想弄乱代码:
首先弄清楚哪种颜色的灰色与默认线匹配并记住它。
在“主页”选项卡中单击“单元格样式”,右键单击“普通”,单击“修改”->“格式”->“边框”。 对于线条颜色,选择该灰色。 对于预设,选择大纲。 完毕。
现在您可能必须全选 (CTRL+A / Command+A) 并单击单元格样式 -> 正常以确保将其应用于所有单元格。 填充单元格时,边框将保留。
该评论由网站上的主持人最小化
谢谢!!
该评论由网站上的主持人最小化
Alissa,我有同样的问题无法解决,但你的回复对我帮助很大,所以非常感谢你,你是天才。
该评论由网站上的主持人最小化
这对我帮助很大。 我一直在搜索很多地方,这是唯一有效的解释! 谢谢!!!
该评论由网站上的主持人最小化
很有帮助-谢谢
该评论由网站上的主持人最小化
谢谢! 我正在拉头发,试图在着色后留下漂亮的灰色边框。 不敢相信微软还没有实现这一点。
该评论由网站上的主持人最小化
这很好用。 (谢谢)但这是真正的问题 - 为什么 Excel 在首先用颜色填充单元格时允许网格线消失? 这只是所谓的智能开发人员从未想到的技术世界中的另一个愚蠢故障。 我的意思是,网格线,默认情况下无论如何都应该在那里......所以......
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点