- ベストアンサー
マクロを使った数値の入力方法について
- C列において同じ値が続いている箇所がありますが、赤と青では値が異なる場合、横のB列の値によってG列の赤のセル内に値を代入する方法を教えてください。
- 手作業では困難な状況にあるため、マクロを使用して一万行以上のデータを処理したいです。
- マクロを使って数値の入力方法を教えてください。
- みんなの回答 (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
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! >・もし横の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
お礼
ご返答いただきまして、どうもありがとうございました。 とても参考にさせていただきました。 ですが、エラーが出てきてしまいました(実行時エラー”1004”でございました)。 ただ、表(小さくて申し訳ございません)には、1から8行目までは空欄、そして、8行目と9行目には、文字列があるのが原因なのかもしれません。 例えば、 A8: エントリー;A9: ポジション; A10: ポジション・・・ A9: レート; A10: pos; A10: コスト もしよろしければ、お助けいただければ、幸甚に存じます。 それでは、よろしくお願い申し上げます。
お礼
ご回答いただきまして、どうもありがとうございました。 当初は”エラー”が出たのですが、上部の文字列を削除し、計算させますと、すばやく計算を実行してくれました。 この場をお借りし、厚くお礼申し上げます。