如何在代码突出显示活动行时保持初始单元格颜色

2023-12-13

我有这个工作簿代码:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'toggles worksheet colors
'code will remove all color
'and color active row and column

  If ActiveCell.Interior.ColorIndex <> xlNone Then
     Cells.Interior.ColorIndex = xlNone
  Else
     Cells.Interior.ColorIndex = xlNone
     ActiveCell.EntireRow.Interior.ColorIndex = 4
End If
End Sub

并且效果很好。但如果一行有初始颜色,它将被删除。让我知道如何 活动行将突出显示,并通过更改行,将获得其初始颜色?


该死,我找不到插件,但我为你重新创建了代码。请注意,这尚未经过彻底测试。在我所做的任何小测试中,它都有效......

Logic:

  1. 创建隐藏工作表。
  2. 将当前单元格的格式存储在该隐藏工作表的第 1 行中
  3. 将活动工作表中当前选定的行号存储到单元格A2隐藏工作表的
  4. 当您移动到不同的行时,检索最后的行号并恢复它。

Code:

在本工作簿代码区

enter image description here

Private Sub Workbook_Open()
    Dim ws As Worksheet

    '~~> Delete the Temp sheet we created i.e if we created
    Application.DisplayAlerts = False
    On Error Resume Next
    Sheets("MyHiddenSheet").Delete
    On Error GoTo 0
    Application.DisplayAlerts = True

    '~~> ReCreate the Sheet
    Set ws = ThisWorkbook.Sheets.Add
    '~~> i am using a normal name. Chnage as applicable
    ws.Name = "MyHiddenSheet"
    '~~> Hide the sheet
    ws.Visible = xlSheetVeryHidden
End Sub

在相关的工作表代码区域中。我在用Sheet1举个例子

enter image description here

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '~~> Don't do anything if multiple cells are selected
    If Target.Cells.CountLarge > 1 Then Exit Sub

    Dim ws As Worksheet

    '~~> Set our relevant sheet
    Set ws = ThisWorkbook.Sheets("MyHiddenSheet")

    '~~> Get the row number of the last row we had selected earlier
    '~~> For obvious reasons, this will be empty for the first use.
    If Len(Trim(ws.Cells(2, 1).Value)) <> 0 Then
        '~~> If user has moved to another row then
        '~~> Restor the old row
        If Target.Row <> Val(ws.Cells(2, 1).Value) Then
            ws.Rows(1).Copy
            Rows(ws.Cells(2, 1).Value).PasteSpecial xlFormats
        End If
    End If

    '~~> Copy the current row's format to the hidden sheet
    Rows(Target.Row).Copy
    ws.Rows(1).PasteSpecial xlFormats
    '~~> Store the current rows value in cell A2
    ws.Cells(2, 1).Value = Target.Row

    '~~> Highlight the current row in a shade of blue.
    '~~> Chnage as applicable
    With Rows(Target.Row).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent5
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
        Rows(Target.Row).Select
    End With

    '~~> Remove the `Ants` which appear after you do a copy
    Application.CutCopyMode = False
End Sub

截图:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在代码突出显示活动行时保持初始单元格颜色 的相关文章

  • 获取当前 VBA 函数的名称

    对于错误处理代码 我想获取发生错误的当前 VBA 函数 或子函数 的名称 有谁知道如何做到这一点 编辑 谢谢大家 我曾希望存在一个未记录的技巧来自行确定函数 但这显然不存在 我想我会保留当前的代码 Option Compare Databa
  • 使用 FindElementbyXpath() 获取 Selenium Basic 中可填充框的行和列名称

    我正在使用 Selenium Basic 将电子表格中的文本填充到网站中 网站的html代码是这样的 div table cellspacing 0 border 1 style width 99 tr th style font weig
  • Android Excel CSV 的 MIME 数据类型是什么?

    我尝试了 text csv 甚至 application vnd ms excel 但 Excel 不会显示在选择列表中 很多其他应用程序也可以 void shareCsv Uri uri Context context Intent in
  • C# 无法将欧元符号打印到文件中(使用 Excel 打开时)

    我在使用 Web api 控制器的 get 方法时遇到问题 此方法返回一个 HttpResponseMessage 对象 该对象具有带有 csv 文件的 HttpContent 其中包含欧元符号 当该方法返回文件时 不会打印欧元符号 该方法
  • 有没有更快的方法来使用Powershell解析Excel文档?

    我正在与一个接口MS Excel文件通过Powershell 每个 Excel 文档可能有大约 1000 行数据 目前这个脚本似乎读取了Excel文件并以每 0 6 秒 1 条记录的速率将值写入屏幕 乍一看 这似乎非常慢 这是我第一次阅读E
  • 使用 ADODB 连接从关闭的工作簿中检索数据。某些数据被跳过?

    我目前正在编写一些代码 可以通过 ADODB 连接访问单独的工作簿 由于速度的原因 我选择了这种方法而不是其他方法 下面是我的代码 Sub GetWorksheetData strSourceFile As String strSQL As
  • 在 Excel 中使用 VBA 设置图像透明度

    有没有办法使用 VBA 脚本对图像应用一些透明度 我录制了一个 宏 但似乎没有录制艺术效果 我已经找到了如何制作形状 但没有找到图像 这需要几个步骤 将自选图形 如矩形 放置在工作表上 使用以下方法将您的实际图片嵌入矩形中 ShapeRan
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 读取上传的Excel文件而不保存它

    在这段代码中 我从用户那里获取上传的文件并将其保存在我的应用程序中的文件夹中 然后对此 Excel 文件进行 OleDbConnection 并读取数据 我的问题是 有人可以建议一种阅读此 Excel 文件的首选方法 但无需预先保存它 因为
  • Vlookup 引用不同工作表中的表数据

    我想用一个VLOOKUP函数引用了放置在与所在工作表不同的工作表中的数据表VLOOKUP书面的功能 示例 在工作表 1 的单元格 AA3 中 我想插入VLOOKUP功能 我希望该函数检查单元格 M3 中的数字 在工作表 2 范围地址 A2
  • 使用 PhpSpreadsheet PHP 设置单元格边框样式

    我使用 PhpSpreadsheet 来读取或写入 Excel 文件 我想向我的 Excel 添加边框样式 所以我使用了以下代码
  • 计算序列中的重复值

    如何使用Excel计算列中的重复数据 Example A B apple 1 apple 2 apple 3 ball 1 bat 1 dog 1 dog 2 gole 1 gole 2 gole 3 gole 4 我认为对于你的情况中的所
  • 如何使用 Python 将多个文本文件中的数据提取到 Excel 中? (每张纸一个文件的数据)

    到目前为止 为了让我的代码读取文本文件并导出到 Excel 我有 import glob data for infile in glob glob txt with open infile as inf data infile l 1 fo
  • Excel 2007 从 C# get_Value 始终返回 -2146826265

    我有一个引用 Microsoft Excel 12 0 对象库的小型 C 应用程序 除此之外 它还从 Excel 单元格读取值 它从一些较旧的 Excel xls 文件和一些 2007 文件 xlsx 中读取此值 所有 xls 文件的值都会
  • 索引行和列意外结果

    我试图理解以下行为 如果我有以下数据 A B a 1 b 2 c 3 如果我使用 INDEX A 1 B 3 它将正确显示整个范围 如果我使用 INDEX A 1 B 3 1 它将正确显示两列第一行的数据 如果我使用 INDEX A 1 B
  • 如何在缩进层次结构中找到父级?

    我目前有一张 Excel 工作表 其中包含缩进的项目层次结构 如下所示 每个项目都缩进 每个缩进四个空格 以显示它如何适应整体层次结构 我已经能够创建一个 级别 列 将缩进级别转换为数字 Item Level Parent P1 1 N A
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • python XlsxWriter 设置多个单元格周围的边框

    I need an easy way to set border around multiple cells like so 我发现的只是 1 个单元格的边框 并合并单元格 这不是我需要的 我期待类似的事情 worksheet range
  • 有什么办法可以加快这个 VBA 算法的速度吗?

    我正在寻找实现 VBAtrie http en wikipedia org wiki Trie 构建能够在相对较短的时间内 少于 15 20 秒 处理大量英语词典 约 50 000 个单词 的算法 由于我实际上是一名 C 程序员 这是我第一
  • 如何根据单元格的值更改单元格的格式和文本。 (条件格式)

    您好 我想根据单元格的值更改单元格的填充颜色和文本 假设我有以下价值观 我想让它像这样 对我来说 填充颜色很简单 因为我只需执行条件格式即可 然而 文字却让事情变得困难 如何将单元格值更改为文本 如上面的示例 谢谢 为颜色创建条件格式规则

随机推荐