4

私は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 用に作成されたものだと思います。エラーの原因についてのアイデアはありますか?

4

1 に答える 1

3

この質問に答えて、「未回答」セクションを残しましょう...そして、答えを探して完全に書かれた質問を見る他の人のために。

説明されている問題は時々発生します。正確な理由はわかりませんが、それを解決する簡単な方法が 1 つあります。変数を使用し、ループが開始する前にその値を設定し、この変数をループ開始行で使用するだけです。これは次のようになります。

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

私の経験によると、すべての「式が複雑すぎる」問題はその方法で解決できます。

于 2013-03-07T07:57:33.560 に答える