C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■97095 / )  Re[1]: 【ExcelVBA】Rangeメソッドのエラー
□投稿者/ 魔界の仮面弁士 (3027回)-(2021/03/26(Fri) 14:54:24)
No97094 (工場プログラマー さん) に返信
> If Range("A" & i).MergeArea.Item(1) = "hogehoge" then

単に Range("A1") だけで済ませると、曖昧さが出てしまいます。
どのシートの Range を操作しているのかを明確にしましょう。Cells 等も同様です。

たとえば
 If ThisWorkbook.Worksheets("Sheet1").Range("A" & i).MergeArea(1).Value = "hogehoge" Then
などのようにします。

Range("A1") というコードをシートモジュール上に書いた場合には、
Me.Range("A1") の意味となり、そのシート上のセルであることが明確になるのですが、
ThisWorkbook モジュールや標準モジュール上に記述していた場合には、
どのシートを操作しているのかが曖昧になります。


> Rangeメソッドのエラーと出ました。
> 指定セルでやるとうまくいくんですけど、解決策ってありますか?

手元の環境ではエラーを再現させられなかったので、
エラー発生時の i の値と、該当セルを含む結合セルのアドレスを教えてください。

また、正確なメッセージの内容は、
 実行時エラー '1004'「'Range' メソッドは失敗しました: '_Global' オブジェクト」
でしょうか。あるいは
 実行時エラー '1004'「'Range' メソッドは失敗しました: '_Worksheet' オブジェクト」
でしょうか。あるいは
 実行時エラー '1004'「Range クラスの MergeArea メソッドが失敗しました。」
でしょうか。それとも…。
返信 編集キー/


管理者用

- Child Tree -