运行宏时Excel闪烁

sar*_*316 0 excel vba excel-vba

当运行下面的宏时,我的整个电子表格都会闪烁,如果有人告诉我如何让它发生,我将不胜感激.

宏正在检查列D是否显示为灰色,如果它是彩色并使列F变灰,反之亦然.

它通过使用C列中正确的颜色复制我设置的3个单元格的格式来更改颜色.

Worksheets("SHELLY").Range("D4:F19").ClearContents

If Worksheets("SHELLY").Range("D3:D19").Interior.ColorIndex = 15 Then

    Range("C41").Select
    Selection.Copy
    Range("F3:F19").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range("C42").Select
    Selection.Copy
    Range("D3:D19").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
Else

    Range("C41").Select
    Selection.Copy
    Range("D3:D19").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range("C43").Select
    Selection.Copy
    Range("F3:F19").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End If
Run Code Online (Sandbox Code Playgroud)

chi*_*lin 5

尝试放:

Application.ScreenUpdating = False在你的代码之前和Application.ScreenUpdating = True最后.

据我所知,切换此属性告诉Excel不要重绘/更新屏幕.

它可能会提高代码的速度.此外,最好避免使用激活/选择,但这不是你的问题.