- ベストアンサー
ExcelVBA Rangeの扱い
- ExcelVBAでRangeを扱う際に注意すべきポイントとは?
- Rangeの範囲指定方法について詳しく解説します。
- なぜRangeの型が合わないとエラーが発生するのかについて説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おかしいですね。 Cells(Cells なんていう書き方はありません。このような表記はエラーになるはずです。 Range(検索範囲).Cells(Cells(1, 5), Cells(Range(検索範囲).Rows.Count, 5)) Range(検索範囲).Cells(Cells(1, 5), Cells(8, 5)) Range("A1:F9").cells(cells(1,1), cells(3,3)) この3つは、エラーになるはずです。 Cells(Cells をRange(Cells に変えてください。 Range(検索範囲).Range(Cells(1, 5), Cells(Range(検索範囲).Rows.Count, 5)) は行けるはずです。私のパソコンでは大丈夫でした。
その他の回答 (2)
- tsubu-yuki
- ベストアンサー率46% (179/386)
私の環境(Win10+Excel2013)では Cells(Cells(1, 5), Cells(9, 5) で動いてますよ。 ※E5セル=2、E9セル=3 なら、C2セルの値が返ります。 単に、 A2セルを含んで Cells(1,5)行目、Cells(9,5)列目が あるいはそのプロセス中のどこかのセルが空白又は文字列だから ではないですかね。 ご提示の例だとE5・E8・求めるセル のどこかだと思いますが・・ 図だと、 Cells(1, 5) = 5 (行目) ※E5セル Cells(Range(検索範囲).Rows.Count, 5) = 3 (列目) ※Range(検索範囲).Rows.Count = 8 なのでE8セル ですので、起点をA2セルとして5行目・3列目で 6行目・3列目(C6セル)の「53」を返していますね。
お礼
有難うございます。 〉Cells(Cells(1, 5), Cells(9, 5)で動いてますよ。 ですよねー? 変だなー? 一端、閉めますが 尚、 …).Range(cells(… と、したら 動きました、ので 此方で 取り敢えず、しのぐ 事、に します
- imogasi
- ベストアンサー率27% (4737/17069)
例に挙げている、Range("A1:F9").cells(cells(1,1), cells(3,3))などで cells(cells(1,1)とcells(3,3))の各々の「セルの値」がどうなっているか?書かないと質問にならないのでは。 ーー おのおののセルの値がが ・空白でないこと ・数字であるか Sub test01() MsgBox Cells(1, 1) MsgBox Cells(1, "A") End Sub が走るから ・列を示す部分で列記号にふさわしい値か ・列数制限を超えた数ではないか など注目したのか?わざわざ質問して他人に手数かけるのだから、報告すべきではないか。 ・Range範囲を超えて指定して大丈夫だったかな? やってみると、大丈夫のようだ。 Sub test02() MsgBox Worksheets("Sheet1").Range("A1:C3").Cells(2, 2) MsgBox Worksheets("Sheet1").Range("A1:C3").Cells(5, 6) End Sub は後半もエラーにならなかった。 この例は3行3列のRangeで、そのOFFSET的に5行6列を指定など。 Range("A1:C3")は左上隅のセルが起点の役割を果たすだけのようだ。
お礼
有難うございます。 …).Range(cells(… で、動きました お騒がせ、しました。
お礼
有難うございます。 お示し、頂いた …).Range(cells(… で、動きました でも、 …).cells(cells(… でも、動く筈 なの、ですが… なんか変ですね 2011