|
こんにちは。かみちゃん です。
>「テスト」という単語をB16に書き込んでしまいます。
>目標は、上記の例でいうとB4に書き込みたいのです。
少し、私が勘違いしていたかもしれません。
> B行のデータが入っているセルを上に検索して最も上にあるセル
改めて質問を読んでみると、まず、この意味がよくわかりません。
単純に考えると、1行目から下方向に見て、最初に値が入っているセルの1つ上なのではないでしょうか?
> データのカウントをした変数intNoというのを作って
> これをOffsetの中に入れてみようと思ったのですが、
> イメージとしてはOffset(0 - (intNo + 1))のような感じで
> B4に書き込みができそうですがどのような書き方をしても
> 実行時エラー1004
> アプリケーション定義またはオブジェクト定義のエラーです
> と表示されます。
変数 intNo の値によります。
たとえば、
End(xlUp)の結果がB4セルだった場合、intNoが2より大きい場合は、そのようなエラーになります。
たとえば、intNoが3の場合は、
Range("B4").Offset(0 - (intNo + 1))
では、
Range("B4").Offset(-4)
となり、B4より4行上は、存在しないからです。
なお、
Range("B4").Offset(intNo)
ではなぜできるかは、
intNo 行の下になるからです。
ただし、
Range("B65533").Offset(intNo)
では、intNoが4の場合、B65533の4行下は、Excel2003以下の場合存在しないので、
同様のエラーになります。
|
|