Excel运行时错误16表达式太复杂

时间:2012-11-25 14:35:01

标签: vba excel-vba excel-2007 excel-2003 excel

我在Excel表格中有这个基本代码

For x = 1 To ThisWorkbook.Worksheets("GRP0").Range("D9:D112").Rows.Count
' do work here
Next x

但是当我执行它时会出现错误

Run-time error '16':

Expression too complex

我在兼容模式下使用Excel 2007,我相信是在Excel 2003中使用Excel,如果有帮助的话。关于导致错误的原因有什么想法吗?

1 个答案:

答案 0 :(得分:2)

让我回答这个问题并让它留下“未答复”部分......以及其他寻求答案并看到完美书面问题的人。

所描述的问题时有发生。我不知道确切的原因,但有一种简单的方法可以解决它。您只需要使用变量,在循环开始之前设置其值,并在循环起始行中使用此变量。这可以如下:

Dim rowsCount As Long
    rowsCount = ThisWorkbook.Worksheets("GRP0").Range("D9:D112").Rows.Count
    'and any other complex statement could be placed here
For x = 1 To rowsCount
    'do work here
Next x

根据我的经验,所有“表达太复杂”的问题都可以通过这种方式解决。