• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロを使った、数値の入力方法についてお願いします)

マクロを使った数値の入力方法について

このQ&Aのポイント
  • C列において同じ値が続いている箇所がありますが、赤と青では値が異なる場合、横のB列の値によってG列の赤のセル内に値を代入する方法を教えてください。
  • 手作業では困難な状況にあるため、マクロを使用して一万行以上のデータを処理したいです。
  • マクロを使って数値の入力方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 >1から8行目までは空欄、そして、8行目と9行目には、文字列があるのが原因なのかもしれません とありますが、結局データは10行目以降にあるというコトですかね? もしそうであれば↓のコードに変更してみてください。 (途中に空白行はないとしています) Sub test() Dim i As Long Application.ScreenUpdating = False Columns(7).ClearContents For i = 10 To Cells(Rows.Count, 2).End(xlUp).Row - 1 '↑ 10行目から~最終行より1行前まで If Cells(i, 3) <> Cells(i + 1, 3) Then Cells(i, 7) = Cells(i, 2) * -1 End If Next i Application.ScreenUpdating = True End Sub ※ 前回のコードはC列の最終行までLoopするようにしていましたが、 それでは最終データに必ず「1」か「-1」が表示されてしまいますので、 最終行の1行前でLoopを止めてみました。 今度はどうでしょうか?m(_ _)m

nyan_nyanko
質問者

お礼

 ご回答いただきまして、どうもありがとうございました。  当初は”エラー”が出たのですが、上部の文字列を削除し、計算させますと、すばやく計算を実行してくれました。  この場をお借りし、厚くお礼申し上げます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >・もし横のB列が”-1”ならば、例えばG列の赤のセル内に”-1”を代入したいのですが の部分は >・もし横のB列が”-1”ならば、例えばG列の赤のセル内に”1”を代入したいのですが と解釈しての一例です。 Sub test() Dim i As Long Application.ScreenUpdating = False Columns(7).ClearContents For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(i, 3) <> Cells(i + 1, 3) Then Cells(i, 7) = Cells(i, 2) * -1 End If Next i Application.ScreenUpdating = True End Sub 外していたらごめんなさいね。m(_ _)m

nyan_nyanko
質問者

お礼

 ご返答いただきまして、どうもありがとうございました。  とても参考にさせていただきました。  ですが、エラーが出てきてしまいました(実行時エラー”1004”でございました)。  ただ、表(小さくて申し訳ございません)には、1から8行目までは空欄、そして、8行目と9行目には、文字列があるのが原因なのかもしれません。  例えば、 A8: エントリー;A9: ポジション; A10: ポジション・・・ A9: レート; A10: pos; A10: コスト  もしよろしければ、お助けいただければ、幸甚に存じます。  それでは、よろしくお願い申し上げます。

関連するQ&A