Office Excel阅读模式(记忆和高亮选中的单元格)的两种方法 您所在的位置:网站首页 excel没有vba Office Excel阅读模式(记忆和高亮选中的单元格)的两种方法

Office Excel阅读模式(记忆和高亮选中的单元格)的两种方法

2023-11-02 17:08| 来源: 网络整理| 查看: 265

金山WPS上非常好用的阅读模式,到了微软Office上就就没有了,很是心痛。

然而网上搜到的Office阅读模式,要么需要用到插件(比如“方方格子”的“聚光灯”),要么不能记忆高亮前的单元格颜色。

这里我收集整理了两种比较可行的阅读模式实现方法给大家参考,适用于Office Excel 2007及以上的版本。

如果对您有帮助,请不要忘记点个赞哦~

方法一:条件格式+VBA

打开Excel,点击 开始→条件格式→管理规则→新建规则→使用公式确定要设置格式的单元格,在 为符合此公式的值设置格式 的方框里输入以下公式:

=AND(CELL("row")=ROW(),CELL("col")=COLUMN())

然后点击下方的 格式 按钮,根据自己的喜好设置需要高亮的单元格样式。比如我设置了 字体加粗、显示外边框、绿色背景色,如图所示:

点击确定后,在 应用于 的输入框内,指定这个条件格式的应用范围,或者点击右侧的 ↑ 箭头拖动来选择应用范围。注意应用范围之外的单元格是不会被高亮的。例如我设置了范围为A1到Z100单元格,则输入 =A1:Z100 (系统会自动补上4个$符号),然后确定。

这时在工作簿内双击一个单元格,这个单元格都会被高亮。但是距离单击选中单元格即高亮的要求,还差了一点。这时候就需要VBA出场,自动刷新页面,来达到我们想要的效果。

ps: 如果没有启用宏,请先在 文件→设置→信任中心→信任中心设置→宏设置 里,选择 启用所有宏,并将文件另存为.xlsm文件。

最后点击 开发工具→Visual Basic,或者按Alt+F11打开VBA编辑器,在Sheet1 模块中,输入以下代码即可,代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.ScreenUpdating = True '自动更新页面 End Sub

方法二:纯VBA

废话不多说,直接上代码:

ps: 这里我选择调用的Workbook对象中的SheetSelectionChange事件,而不是Worksheet的SelectionChange事件,因此代码需要写在ThisWorkbook模块中而不是Sheet1模块中。

'定义一堆全局变量,用于记忆高亮之前的单元格样式 (只列出了常用的单元格样式) Public X As Integer Public Y As Integer Public R As Integer Public G As Integer Public B As Integer Public LS As Integer Public FN As String Public FS As Double Public FB As Boolean Public FI As Boolean Public FCI As Integer Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '如果全局变量已经被赋值,对前一个选中的单元格应用已保存的样式 If X > 0 And Y > 0 Then With Cells(X, Y) .Interior.Color = RGB(R, G, B) '背景颜色 .Borders.LineStyle = LS '线条样式 .Font.name = FN '字体名称 .Font.Size = FS '字体大小 .Font.Bold = FB '字体加粗 .Font.Italic = FI '字体斜体 .Font.ColorIndex = FCI '字体颜色 End With End If '如果选择的范围内单元格数量大于1个,则退出此过程,避免出现溢出 If Target.Address Like "*[:,]*" Then Exit Sub Else '获取当前选中的单元格的样式 On Error Resume Next X = Target.Row Y = Target.Column R = Target.Interior.Color \ 256 ^ 0 Mod 256 G = Target.Interior.Color \ 256 ^ 1 Mod 256 B = Target.Interior.Color \ 256 ^ 2 Mod 256 LS = Target.Borders.LineStyle FN = Target.Font.name FS = Target.Font.Size FB = Target.Font.Bold FI = Target.Font.Italic FCI = Target.Font.ColorIndex '对当前选中的单元格应用自定义的样式 (根据自己的喜好更改) With Cells(X, Y) .Interior.Color = RGB(175, 255, 175)'绿色背景 .Borders.LineStyle = xlContinuous '实心线条 .Font.name = "Arial" 'Arial字体 .Font.Size = 11 '11号字体 .Font.Bold = True '字体加粗 .Font.Italic = FI '保留当前的字体斜体 .Font.ColorIndex = FCI '保留当前的字体颜色 End With End If End Sub

这里会有一个小小的问题:每次关闭Excel文件,并且即使没有对表格的内容做任何更改,退出时都会弹出是否保存的对话框,并且最后一次选中的单元格高亮效果会被保存下来,覆盖原有的单元格样式。

因此我选择调用的Workbook对象中的BeforeClose事件来解决这个问题,代码如下:

Private Sub Workbook_BeforeClose(Cancel As Boolean) '在关闭Excel之前,对最后一次选中的单元格应用已保存的样式 If X > 0 And Y > 0 Then With ActiveCell .Interior.Color = RGB(R, G, B) .Borders.LineStyle = LS .Font.name = FN .Font.Size = FS .Font.Bold = FB .Font.Italic = FI .Font.ColorIndex = FCI End With End If '关闭确认的对话框并自动保存 Application.DisplayAlerts = False ThisWorkbook.Save Application.DisplayAlerts = True End Sub

以上就是我总结的两种Office Excel阅读模式的实现方法。

对应的源文件下载地址:https://lanzoui.com/iPek9tgf17i

欢迎留言讨论。如果对您有帮助,请不要忘记点个赞哦~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有