我在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,如果有帮助的话。关于导致错误的原因有什么想法吗?
答案 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
根据我的经验,所有“表达太复杂”的问题都可以通过这种方式解决。