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

いつもお世話になっております
申し訳ございません。
おしえてくれませんでしょうか

下記のコードなんですが、
添付ファイルのように
データを拡張させました。
わたしなりに 修正したところ
連番のところが1だけになり、
うまく動作しなくなりました。

おしえてくれませんでしょうか

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, n As Integer
Dim tlR As Range, nr As Range
With Target
If .Count > 1 Then Exit Sub
If .Column <> 7 Then Exit Sub    '★7列目に変更
If .Row < 3 Then Exit Sub
Set r = .EntireColumn.Find("金額") 'シンボル
If r Is Nothing Then Exit Sub
Set tlR = Cells(Rows.Count, .Column).End(xlUp)
Application.EnableEvents = False
If .Offset(1) <> "" And .Value <> "" Then '途中変更
tlR = Application.Sum(r.Resize(tlR.Row - 2))
GoTo myEnd
End If

If IsNumeric(.Offset(-5, -2)) Then '通常入力№   '.Offset(-5, -2)に変更
.Offset(, -5) = .Offset(-5, -2) + 5
Else
.Offset(, -5) = 1              '.Offset(-5, -2)に変更
End If
If .Value <> "" Then '通常入力
.Offset(1, -2).Resize(tlR.Row, 3).ClearContents
.Offset(3, -1).Value = "合計"
.Offset(3).Value = Application.Sum(r.Resize(.Row))
Else '消した時
n = 1
Range(.Offset(, -2), .Offset(, 0)).Delete Shift:=xlUp
tlR.Offset(, -2).Resize(1, 3).ClearContents
tlR.Offset(, -1) = "合計"
tlR.Value = Application.Sum(r.Resize(tlR.Row - 2))
For Each nr In Range(r.Offset(1), tlR.Offset(-3))
nr.Offset(, -2).Value = n
n = n + 1
Next
End If
End With
myEnd:
Application.EnableEvents = True
End Sub

「ワークシートチェンジ」の質問画像

A 回答 (1件)

前回の回答を十分理解してから応用するようにしましょう。


幾度かの質問で続きがあった際にそう言う点が見られます。
デバッグの重要性も身に付けないと。

どうやってチェックするか?についてはネットでも見つかるでしょう。
少なくとも1行ずつのステップ実行とかはね。
https://www.239-programing.com/excel-vba/basic/b …
⇒と言いつつ私はVBAを始めて半年以上たってから知りましたけど。
    • good
    • 0
この回答へのお礼

ありがとうございます。
F8で実行します。

お礼日時:2022/02/01 12:18

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