セル範囲指定エラー range, cells

実際にエラーになるとなかなか気づかないやつ。

複数シートにまたがるrange("左上セル","右下セル")としたときのオブジェクト定義エラー。

実際に"左上セル"と”右下セル”に書くとき、シートの指定を省略したことにより誤ってactivesheetを指定していることが原因。

ボタンを設置したメニューシートとデータがあるコピー元シート、コピー先シートがあるとき、ステップ参照で自分でactivesheetを変えながら追っていくとエラー発覚しないという落とし穴。セル範囲の指定を誤ったシートを開いて(activesheetにした状態で)テスト実行するとエラー発覚しない。しかし、実際にメニューシートに設置したボタンから一気に実行するとactivesheetが異なりエラーになる。

with~end with の中で、"右下セル"に、cells(rows.count,1).end(xlUP)とするのに夢中になってしまい、「.」をつけていなかったりして、外側の.range(左上、右下)の.rangeの指定するシートと中で指定する右下セルのシートが違ったり。その際、左上セルをrange("A1")ではなく、単に”A1”とすると外側の.range の.に従ってくれるので、左上セルは問題ないが、結局右下セルではrangeなりcellsを使うので外側の.rangeと中の右下セルのrangeなりcellsなりで、シートが違ってオブジェクト定義エラーとなるようだ。

with~end with の中ではないが、"右下セル"に、cells(rows.count, 1).end(xlup)としただけでsheetの指定をしなかったりで、activesheetを指定しているケース。