Excel VBA質問箱 IV

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

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


5725 / 13645 ツリー ←次へ | 前へ→

【49198】実行時エラー6 オーバーフローしました。。何故? なつ 07/5/27(日) 13:42 質問[未読]
【49200】Re:実行時エラー6 オーバーフローしました... かみちゃん 07/5/27(日) 15:01 発言[未読]
【49201】Re:実行時エラー6 オーバーフローしました... なつ 07/5/27(日) 15:54 お礼[未読]
【49203】Re:実行時エラー6 オーバーフローしました... かみちゃん 07/5/27(日) 16:31 発言[未読]
【49242】Re:実行時エラー6 オーバーフローしました... なつ 07/5/28(月) 17:01 お礼[未読]

【49198】実行時エラー6 オーバーフローしました...
質問  なつ  - 07/5/27(日) 13:42 -

引用なし
パスワード
   超初心者です。基本知識が全くなく、本片手にコード丸写し状態
というレベルです。
多分検索値が日付なのが関係してる?
というとこまでは考えて、本を行きつ戻りつ
読んでみましたが、さっぱり。。。

どう質問していいのかも、よくわかってません。。

こんなんですみませんが‥教えてください。


"C4"のセルに日付を入れ、データテーブルから該当の日付のデータを
検出したいですが。


Sub 検索()
  Dim tmpInt As Integer, motoHani(), myRng As Range, i As Integer
  tmpInt = Worksheets("変動費入力シート").Range("C4").Value
  motoHani = Array("C7", "D7", "E7", "F7", "G7", "H7", "C11", " D11", "E11", "F11", "G11", "H11")
  
  Set myRng = Range("変動費データテーブル").Columns(1).Find(tmpInt, LookAt:=xlWhole)
  
  If myRng Is Noshing Then
    MsgBox "入力されていません。入力してください。"
    Exit Sub
    
  End If
  
  For i = 0 To UBound(motoHani)
    Range(motoHani(1)).Value = myRng.Offset(0, i + 1)
    Next
End Sub

【49200】Re:実行時エラー6 オーバーフローしまし...
発言  かみちゃん  - 07/5/27(日) 15:01 -

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

>どう質問していいのかも、よくわかってません。。

どこのコードで出るのでしょうか?
想像ですが、
tmpInt = Worksheets("変動費入力シート").Range("C4").Value
tmpIntは、Integer型ですので、Integer型が扱える数値をヘルプなどで確認をして
ください。
たぶん、
Worksheets("変動費入力シート").Range("C4").Value
が、扱える値以外の値になっているのではないでしょうか?

また、
Range("変動費データテーブル").Columns(1).〜
という記述も少し気になります。動くのであれば、問題ないでしょうけど。

【49201】Re:実行時エラー6 オーバーフローしまし...
お礼  なつ  - 07/5/27(日) 15:54 -

引用なし
パスワード
   ▼かみちゃん さん:

全くわかってなくて、丸投げ質問にもかかわらず
親切に教えて頂いて本当にありがとうございました。

挫折してましたが、もうちょっと頑張ってみます(涙)

すみませんが、教えてください。


>Worksheets("変動費入力シート").Range("C4").Value
>が、扱える値以外の値になっているのではないでしょうか?
           ↑
  おっしゃるとおり、ここでエラーになります。
  が、日付なので問題ないと思ったんですが
  根本的にわかってないんでしょうか??

 
 。

【49203】Re:実行時エラー6 オーバーフローしまし...
発言  かみちゃん  - 07/5/27(日) 16:31 -

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

>>Worksheets("変動費入力シート").Range("C4").Value
>>が、扱える値以外の値になっているのではないでしょうか?
>           ↑
>  おっしゃるとおり、ここでエラーになります。
>  が、日付なので問題ないと思った

ポイントは、2つです。

1つめとしては、
変数tmpInt のデータ型は、何型で宣言していますか?
(ご自身でコードを書いているなら、Dim 〜を見れば、わかると思います。)
その型が扱える範囲は何ですか?
(ヘルプで確認できると思います。)

2つめとしては、
日付は、シリアル値というものです。
試しに、一般操作の「セルの書式設定」で表示形式を「標準」にしてその値を
確認してください。
その値がさきほどのデータ型で扱えるかどうかです。

どうしたらいいのかの答えは、書くのは簡単ですが、非常に大事なところです。
まずは、確認していただき、わかれば、どのように解決したかを教えてください。
わからなければ、どこまでわかって、何がわからないかを教えてください。

【49242】Re:実行時エラー6 オーバーフローしまし...
お礼  なつ  - 07/5/28(月) 17:01 -

引用なし
パスワード
   ▼かみちゃん さん:

変数の宣言の記述は‥
Dim 変数名 As データ型
         ↑
今回日付型なのでIntegerではなくてDateになるわけですね。

解決致しました。
かなり初歩的。。。しかも拙い質問にもかかわらず
丁寧に対応して頂いて本当にありがとうございました。


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