gpt4 book ai didi

excel - 突出显示发生变化的单元格

转载 作者:行者123 更新时间:2023-12-02 01:23:23 25 4
gpt4 key购买 nike

我想将 Excel 工作表中发生变化的任何单元格突出显示为黄色。目前,我有以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.ColorIndex = 6
End Sub

这工作得很好并且达到了预期目的,但有一个明显的问题。我无法恢复更改(ctrl + z 不起作用),如果我将单元格更改回其原始内容,单元格将保持黄色,因为它被识别为更改,从而导致无限循环。我可以手动选择“无填充”来删除黄色填充,但我希望这是自动的。如果我在工作表中犯了错误并想要返回单元格的原始内容,我希望单元格没有填充,而无需手动执行此操作。

有办法解决这个问题吗?

非常感谢任何帮助,谢谢!

最佳答案

这可能更适合您的使用,只需两步即可使用 Worksheet_SelectionChange() 而不是 Worksheet_Change():

  1. ThisWorkbook 私有(private)模块中,定义一个公共(public)成员 gOldTarget。我们添加代码以在 Workbook_Open() 中打开 Excel 文档后立即突出显示具有焦点的 Selection。以及在 Workbook_BeforeClose() 中删除退出 Excel 时的突出显示。这样黄色单元格设置就不会保存在最终的 Excel 文档中。
Option ExplicitPublic gOldTarget As RangePrivate Sub Workbook_Open()  If (TypeName(Selection) = "Range") Then    Selection.Interior.ColorIndex = 6    Set gOldTarget = Selection  End IfEnd SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)  '  ' restore the old cell before saving into doc.xlsm:  '  If (Not gOldTarget Is Nothing) Then    gOldTarget.Interior.ColorIndex = xlColorIndexNone  End IfEnd Sub
  • 第二步,我们在 Worksheet 私有(private)模块中添加代码,根据需要动态突出显示 ActiveCell/Selection:
  • Option ExplicitPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)  '  ' highlight the current cell:  '  Target.Interior.ColorIndex = 6  '  ' restore the old cell:  '  If (Not ThisWorkbook.gOldTarget Is Nothing) Then    ThisWorkbook.gOldTarget.Interior.ColorIndex = xlColorIndexNone  End If    '  ' save the current target:  '  Set ThisWorkbook.gOldTarget = TargetEnd Sub

    使用 Worksheet_SelectionChange(),它会突出显示具有焦点的当前单元格。当您退出单元格时,突出显示将被抑制。

    enter image description here

    enter image description here

    引用号。 https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.selectionchange

    关于excel - 突出显示发生变化的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75550638/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com