アプリ版:「スタンプのみでお礼する」機能のリリースについて

testシートのD列(D2以下)に値が入力されるとC列に計算式A列*B列が入っておりその答えが入力されます。
同時に、D列に値を入力するとC列に入力される値をその下の行のB列に自動反映させたいのです。

例D2=10.5  C2=10(A2)*5(B2) B3=C2の答えの50

教えていただきましたら幸いです。
よろしくお願いいたします。

A 回答 (3件)

例えば、範囲をD2~D100までだとして、



Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("D2:D100")) Is Nothing Then
  Target.Offset(1, -2).Value = Target.Value
 End If
End Sub

とか。
    • good
    • 0
この回答へのお礼

一番にご回答くださいましてありがとうございます。

お礼日時:2017/08/18 20:14

こんにちは。



これは、数式のあるなしのチェックはしていません。

'//シートモジュール
Private Sub Worksheet_Change(ByVal Target As Range)
Dim fig As Variant
 If Target.Count > 1 Then Exit Sub
 If Target.Column <> 4 Then Exit Sub
 If Target.Row > 1 And IsNumeric(Target.Value) Then
  fig = Split(Target.Text, ".")
  On Error Resume Next
  Application.EnableEvents = False
  Target.Offset(, -3).Value = fig(0)
  Target.Offset(, -2).Value = fig(1)
  Target.Offset(1, -2).Value = Target.Offset(, -1).Value
  Application.EnableEvents = True
  On Error GoTo 0
 End If
End Sub
    • good
    • 0
この回答へのお礼

こんにちは。
ありがとうございます。
見慣れない単語があり、勉強になりました!
感謝しております。
ありがとうございます。

お礼日時:2017/08/18 20:14

こんにちは!



すでに回答は出ていますので、参考程度で・・・
シートモジュールです。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D:D")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Row > 1 Then
If .Value <> "" Then
.Offset(1, -2) = .Offset(, -1)
Else
.Offset(1, -2).ClearContents
End If
End If
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

いつもありがとうございます。
エラーがでて、あれ?と思ったのですが、同じシートに2つのWorksheet_Changeがあることに気づきました。それぞれWorksheet_Change_1とWorksheet_Change_2に変更して、Worksheet_Changeで、Worksheet_Change_1とWorksheet_Change_2を順に呼ぶプロシージャを追加しましたら正常に動きました!いつもいつもありがとうございます!!!!!感謝しております。

お礼日時:2017/08/18 20:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!