+ -
当前位置:首页 → 问答吧 → 如何提高这段代码速度?

如何提高这段代码速度?

时间:2011-08-05

来源:互联网

一工作表内有很多列中含有公式,而且所有带公式的单元格均设置了背景色(Interior.ColorIndex = 20 ),有时候不小心公式会丢失,为检查公式丢失情况,写了如下代码:
  For Each dyg In sheets("xx").UsedRange
        If dyg.Interior.ColorIndex = 20 And dyg.HasFormula = False Then
            hang = Sheets("AAA").[A65536].End(xlUp).Row + 1
            Sheets("AAA").Range("a" & hang) =  dyg.Address & "公式丢失!"
        End If
    Next

以上代码要逐一搜索所有使用单元格,运行速度在11秒左右,如何能缩小搜索范围,即:把For each 语句限定在有公式的背景色范围内?
如果写成:for each dyg in sheets("XX").interior.colorindex=20  语法错误

请赐教,谢谢!

作者: kmgkmg   发布时间: 2011-08-05

顶上来请高手协助

作者: kmgkmg   发布时间: 2011-08-05

For Each dyg In sheets("xx").UsedRange.SpecialCells(xlCellTypeConstants, 23)
      If dyg.Interior.ColorIndex = 20  then

试试

作者: livewire   发布时间: 2011-08-05

不行,监察大哥,改成您的写法后,某单元格的公式丢失了也检查不出来

作者: kmgkmg   发布时间: 2011-08-05

相关阅读 更多