Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4509 / 13644 ツリー ←次へ | 前へ→

【56205】変数に収めたデータの最大値について KEI 08/6/8(日) 22:34 質問[未読]
【56206】Re:変数に収めたデータの最大値について かみちゃん 08/6/8(日) 22:44 発言[未読]
【56208】Re:変数に収めたデータの最大値について ponpon 08/6/8(日) 22:50 発言[未読]
【56209】Re:変数に収めたデータの最大値について KEI 08/6/8(日) 23:15 質問[未読]
【56210】Re:変数に収めたデータの最大値について かみちゃん 08/6/8(日) 23:28 発言[未読]
【56211】Re:変数に収めたデータの最大値について KEI 08/6/8(日) 23:39 質問[未読]
【56213】Re:変数に収めたデータの最大値について KEI 08/6/9(月) 0:33 お礼[未読]

【56205】変数に収めたデータの最大値について
質問  KEI  - 08/6/8(日) 22:34 -

引用なし
パスワード
   vntData にデータを読み込ませまして、vntDataの1〜9行間の最大値を別シート(DATA)のセルに出力しようとしているのですが、どうしてもうまくいきません。
原因をご存知の方がいれば、ご指導お願いします。

SUB テスト ()
DIM vntData AS VARIANT
vntData = Sheets("データ").Range(Cells(2, 5), Cells(50 5)).Value
Sheets("DATA").Cells(1, 1) = WorksheetFunction.Max(vntData3.RANGE _("A1:A9"))
END SUB

【56206】Re:変数に収めたデータの最大値について
発言  かみちゃん  - 08/6/8(日) 22:44 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> vntData にデータを読み込ませまして、vntDataの1〜9行間の最大値を別シート
>(DATA)のセルに出力しようとしているのですが、どうしてもうまくいきません。

どううまくいかないのでしょうか?
エラーが出るのでしょうか?
提示されたコードは、投稿時の記述ミスでしょうか?
Cells(50 5)
という記述や
vntData3.RANGE _("A1:A9")
という記述がおかしいです。

また、これらが仮に投稿時の誤りだとすれば、
vntData = Sheets("データ").Range(Cells(2, 5), Cells(50, 5)).Value
というコードでは、「データ」シートがアクティブでない場合、エラーになります。
Cells で指定しているセルのシートがアクティブシートだからです。

以上のことを推測して、修正すると、以下のような感じでいかがでしょうか?
Sub テスト()
 Dim vntData As Variant
 vntData = Sheets("データ").Range(Sheets("データ").Cells(2, 5), Sheets("データ").Cells(50, 5)).Value
 Sheets("DATA").Cells(1, 1) = WorksheetFunction.Max(vntData, Range("A1:A9"))
End Sub

投稿時のコードの提示は、VBEで記述したコードをそのままコピーして張り付ける
ようにすれば、今回のようなことはなくなると思います。

【56208】Re:変数に収めたデータの最大値について
発言  ponpon  - 08/6/8(日) 22:50 -

引用なし
パスワード
   ▼KEI さん:
>vntData にデータを読み込ませまして
     ここですよね
       ↓
>vntData = Sheets("データ").Range(Cells(2, 5), Cells(50 5)).Value
  
 
>vntDataの1〜9行間の最大値を別シート(DATA)のセルに出力しようとしているの
      ここですよね
        ↓
>Sheets("DATA").Cells(1, 1) = WorksheetFunction.Max(vntData3.RANGE _("A1:A9"))

読み込ませているデータは、Sheets("データ")E2〜E50で
MAXで抽出しているのは、vntData3.RANGE _("A1:A9")
               ↑
            これは何ですか?

【56209】Re:変数に収めたデータの最大値について
質問  KEI  - 08/6/8(日) 23:15 -

引用なし
パスワード
   すいません、投稿時はなるべく簡素の形で投稿しようと思いまして、vntData3をvntDataに変えたりしていましたら、訂正忘れが出てしまいました。すいませんでした。本来は↓です。
SUB テスト ()
DIM vntData AS VARIANT
vntData = Sheets("データ").Range(Cells(2, 5), Cells(50 5)).Value
Sheets("DATA").Cells(1, 1) = WorksheetFunction.Max(vntData.RANGE("A1:A9"))
END SUB
データのCells(2, 5), Cells(50 5))の間のデータを変数vntDataに収めて、再度別シートにvntDataに収めたデータの1〜9行間の最大値を出力する物です。
このコードではエラーこそでませんが、出力先のSheets("DATA").Cells(1, 1)には何も出力されませんでした。 

【56210】Re:変数に収めたデータの最大値について
発言  かみちゃん  - 08/6/8(日) 23:28 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>このコードではエラーこそでません

私が[56206]で書いたことは、ご確認いただけていないのでしょうか?

本当にこのコードにしているならば、
Cells(50 5)

vntData.RANGE
でエラーになるはずです。

どうしたらいいのかは、[56206]で書いています。

【56211】Re:変数に収めたデータの最大値について
質問  KEI  - 08/6/8(日) 23:39 -

引用なし
パスワード
   何度もすいません、コードは1000行以上あるので、必要箇所を抜き取る形で投稿させてもらいます。変数の宣言は全てVARIANTです。先ほど投稿した物とはシート名や数値や変数名こそ違いますが、やりたい事は同じです。エラーでませんでした。

MYMAXROW2 = Worksheets("領域").Range("A65536").End(xlUp).row

vntData3 = Sheets("領域").Range(Cells(2, 3), Cells(MYMAXROW2, 3)).Value

Sheets("DATA").Cells(MYMAXROW2 + 1, 108) = WorksheetFunction.Max(vntData3.Range("A1:A9"))

【56213】Re:変数に収めたデータの最大値について
お礼  KEI  - 08/6/9(月) 0:33 -

引用なし
パスワード
   少し、質問する時の詰めがあまかった用です。 
マクロ全体ではエラーがでませんでしたが、
実際書き出した部分で実行書けたらエラーが出ました。
ちょっと考えたら、書き方がわかりました。
今度からもう少し、考えてから投稿したいと思います。
ご迷惑おかけしました。

4509 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free