如果工作表中还没有任何代码可用于自动更新条件格式,我会在其中插入代码。这对某些工作表很好,但其他工作表在视觉上落后。
这是一个随机选择的单元格,我将代码和条件格式插入到工作表中:x1c 0d1x这只是为了跟踪我在不同的工作簿/程序中工作时在更大的数据集中的位置。
对于这个工作表(我以前遇到过这个问题,但不知道如何重现),“初始”状态在某些区域滞后,如下所示
但是,如果我使用代码中的最后两行,或者我向下滚动(到问题不再可见的地方),然后向上滚动,视觉故障就消失了。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo skipEnd
If Target.Cells.Count = 1 Then
If Application.CutCopyMode = False Then
Application.Calculate
End If
End If
' Application.ScreenUpdating = False
' Application.ScreenUpdating = True
skipEnd:
End Sub
On Error GoTo skipEnd
仅用于在选择整个工作表时阻止溢出错误。
当它发生时,它总是相同的行,不管我从哪一列/单元格开始。没有分裂或任何我能想到的,可以扔在我的其他快乐的小生活质量更新扳手。
有没有人有一个想法,如何防止这种情况,而不是需要 Flink 的Application.ScreenUpdating
?(特别是因为这种情况只是偶尔发生)
附言:我知道人们要求一个可重现的问题,只是希望其他人偶然发现了一个解决方案,而不是一个补丁。
2条答案
按热度按时间xwbd5t1u1#
CELL("rij")
仅在计算发生时更新。如果只是选择一个新行,则不会出现这种情况。将
Target.Calculate
添加到Worksheet_SelectionChange
-event -然后CELL("rij")
也会更新。jfewjypa2#
你什么都不需要不要在Worksheet_SelectionChange中使用Application.ScreenUpdating。只要用另存为以不同的名称保存这本书,关闭它,打开它,一切都会被修复。
在上面的方法中,我可以修复类似的东西。还有一次,我不得不从菜单中清除工作表上的所有规则,从而删除这两条规则(它们形成了一个十字架)。当我把它们写回来的时候,它们工作得很好。
解决此问题的第三种方法是:1)删除工作表的规则2)更改单元格的高度(我的情况下将其设置为30),3)将高度设置回来(在我的情况下为15,75)4)重写规则