Excel VBA質問箱 IV

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

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


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

【32488】初心者何ですが、cell( ) の演算について。 サザエ 05/12/16(金) 1:04 質問[未読]
【32492】Re:初心者何ですが、cell( ) の演算につい... ponpon 05/12/16(金) 6:27 発言[未読]
【32525】Re:初心者何ですが、cell( ) の演算につい... サザエ 05/12/16(金) 19:36 質問[未読]
【32527】Re:初心者何ですが、cell( ) の演算につい... ponpon 05/12/16(金) 19:44 発言[未読]
【32528】Re:初心者何ですが、cell( ) の演算につい... サザエ 05/12/16(金) 20:08 お礼[未読]
【32529】Re:初心者何ですが、cell( ) の演算につい... ponpon 05/12/16(金) 20:12 発言[未読]

【32488】初心者何ですが、cell( ) の演算について。
質問  サザエ E-MAIL  - 05/12/16(金) 1:04 -

引用なし
パスワード
   Dim i As Byte
Dim k As Single
  
k = 0
i = 2
Do Until Cells(i, "A") = ""
  If Cells(i, "C") > Cells(i - 1, "C") And k = 0 Then
    k = Cells(i - 1, "C")
    Cells(i, "I").Value = Cells(i - 1, "C")
  ElseIf k <> 0 And Cells(i, "D") < Cells(i - 1, "D") * 0.9 Then
    Cells(i, "J").Value = Cells(i - 1, "D")
    Cells(i, "K").Value = k - Cells(i - 1, "D")
    k = 0
  End If
    
  i = i + 1
Loop
Cells(i - 1, "D") * 0.9 の所でエラーになります。
所が試しに Cells(i + 1, "D") * 0.9 にするとエラーが出ません。
なぜでしょうか。

【32492】Re:初心者何ですが、cell( ) の演算につ...
発言  ponpon  - 05/12/16(金) 6:27 -

引用なし
パスワード
   おはようございます。

>エラーになります
エラーの場合は、エラーメッセージを載せると
解決が速いと思います。


よくわかっていませんが、

>Dim i As Byte



Dim i As Long

に変えてみたらどうでしょうか?

【32525】Re:初心者何ですが、cell( ) の演算につ...
質問  サザエ E-MAIL  - 05/12/16(金) 19:36 -

引用なし
パスワード
   ponponさん、回答ありがとうございます。
早速、ByteをLongに変えてみましたがダメでした。
エラー表示は
    エラー”13” 型が一致しません。
でした。
ElseIf k <> 0 And Cells(i, "D") < Cells(i - 1, "D") * 0.9 Then 

ElseIf k <> 0 And Cells(i, "D") * 0.9 < Cells(i - 1, "D") Then
にしてみると、ちゃんと動作してしまうのでわけがわかりません。

このほかにも比較記号の向きを変えて、右辺と左辺を入れ替えるなど、いろいろと
やってはみたものの、うまくいきません。
比較演算子を使ったとき、比較セル同士の上のセルの値を変えてはいけないと
いうような制限でもあるかのようです。
よろしければ、さらなる回答よろしくお願いします。

【32527】Re:初心者何ですが、cell( ) の演算につ...
発言  ponpon  - 05/12/16(金) 19:44 -

引用なし
パスワード
   こんばんは。
セルの中に何が入っているか知りませんが、

>ElseIf k <> 0 And Cells(i, "D") < Cells(i - 1, "D") * 0.9 Then

ElseIf k <> 0 And Cells(i, "D").Value < Cells(i - 1, "D").Value * 0.9 Then 

のように、プロパティーを省略しない方がいいと思いますが・・・

【32528】Re:初心者何ですが、cell( ) の演算につ...
お礼  サザエ  - 05/12/16(金) 20:08 -

引用なし
パスワード
   解決しました。ありがとうございます。
回答の
 >セルの中に何が入っているか知りませんが、
が気になって、セルの中身を確認したところ、 (i - 1) としたことで。
文字列のセルにかかっていました。あんなに悩んだのに、ただのイージーミス
でした。すいません。

【32529】Re:初心者何ですが、cell( ) の演算につ...
発言  ponpon  - 05/12/16(金) 20:12 -

引用なし
パスワード
   こんばんは。
よく意味は分かりませんが、
以下でエラーもなく動いているようですが・・・・

Sub test()
Dim i As Long
Dim k As Single
 
k = 0
i = 2
Do Until Cells(i, "A") = ""
  If Cells(i, "C").Value > Cells(i - 1, "C").Value And k = 0 Then
    k = Cells(i - 1, "C").Value
    Cells(i, "I").Value = Cells(i - 1, "C").Value
  ElseIf k <> 0 And Cells(i, "D").Value < Cells(i - 1, "D").Value * 0.9 Then
    Cells(i, "J").Value = Cells(i - 1, "D").Value
    Cells(i, "K").Value = k - Cells(i - 1, "D").Value
    k = 0
  End If
  
  i = i + 1
Loop


End Sub

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