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

Private Sub Worksheet_Change(ByVal Target As Range)に2つの処理コードを書きたいのですが、エラー表示(黄色)になります。エラーを解消できません。コードは次のとおりです。追加したコードは先日gooで教えていただいたコードを参考にしています。宜しくお願いします。
Private Sub Worksheet_Change(ByVal Target As Range) ←ここが黄色になります。
If Target.Column <> 5 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, -3).Value = Now
Application.EnableEvents = True
End Sub
・・・・・・・・・・ ・・・・・・・・・・・・・・・・・以下を追加しました。
With Target
If .Address = "$E$2" Then
If WorksheetFunction.CountBlank(Range("D2:E2")) = 0 Then
Cells(Range("D2") + 6, "E") = .Value
Range("E2").ClearContents
End If
End If
End With
End Sub

A 回答 (3件)

No.2です。



前回のコードは消去し、↓のコードに変更してください。

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 5 Or .Count > 1 Then Exit Sub
If .Address = "$E$2" Then
If WorksheetFunction.CountBlank(Range("D2:E2")) = 0 Then
With Cells(Range("D2") + 6, "E")
.Value = Range("E2")
.Offset(, -3) = Now()
End With
Range("E2").ClearContents
End If
End If
End With
End Su

※ 前回のコードはシリアル値の表示が間違っていました。m(_ _)m
    • good
    • 1
この回答へのお礼

ありがとう

おはよう御座います。毎回迅速かつ丁寧にご教授いただき感謝申し上げます。有り難う御座いました。素人でシステムを作り上げ行っています。また改良するに解らなくなった時は宜しくお願いします。

お礼日時:2017/12/11 08:28

こんばんは!



すでに回答は出ていますが・・・
もしかして

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 5 Or .Count > 1 Then Exit Sub
If .Address = "$E$2" Then
If WorksheetFunction.CountBlank(Range("D2:E2")) = 0 Then
.Offset(, -3) = Now()
Cells(Range("D2") + 6, "E") = .Value
Range("E2").ClearContents
End If
End If
End With
End Sub

こんな感じのコトをやりたいのでしょうか?

※ お示しのコードでは行に関係なく、E列データ変更時にB列にシリアル値が表示されますが
上記コードではE2セルだけを対象としています。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとう

先日ご教授いただいたコードを参考にしました。また解らなくなったのでご質問させて頂きました。有り難う御座います。

お礼日時:2017/12/11 08:30

End Sub


は Subがそこでおしまいってこと。
追加するなら先にそれを消さないとね。
    • good
    • 0

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