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

参照するセルを”G34”から”S31”に変更したところエラーは出ませんが、良く作動しません。何処を変えたら良いか教えて下さい。次のコードを頂いて使ってます。
※このコードは変更前のコードです。(変更後は”G34”を”G31"にする予定です。)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Set myRng = Range("G35:G39")
If Intersect(Target, Range("G34", myRng)) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Address(0, 0) = "G34" Then
Range("G40").Value = Range("G34") - Application.Sum(myRng)
Call Val_Offset(Range("G40"), myRng)
GoTo Ext
End If
On Error GoTo DelEr
Call Val_Offset(Target, myRng)
Range("G40").Value = Range("G34") - Application.Sum(myRng)
Call Val_Offset(Range("G40"), myRng)
If Target(1).Value = "" Then Target.Offset(, 4) = 0
Ext:
Application.EnableEvents = True
Exit Sub
DelEr:
If Range("G40") = "" Then
Range("G39,M39") = ""
Range("G39:I39").Merge
Range("G40:I40").Merge
Range("G40:I40").Borders.LineStyle = True
Range("G40").Value = Range("G34") - Application.Sum(myRng)
End If
If Range("G34") = "" Then
Range("M35:M40") = 0
End If

GoTo Ext
End Sub
Sub Val_Offset(Target As Range, myRng As Range)
With Target
If .Value < 10000 Or Not IsNumeric(.Value) Then
.Offset(, 4).Value = 0
Else
.Offset(, 4).Value = "このセルに指定数字を入力"
If Target.Address(0, 0) <> "G40" Then .Offset(, 4).Select
End If
End With
End Sub

A 回答 (2件)

こんにちは、


>参照するセルを”G34”から”S31”に変更したところエラーは出ませんが、良く作動しません。
どのような結果になるのかわかりませんが、G34への参照をS31に変えるだけなら、

Range("G34")は、Offsetなど相対的な使用をしていないので、
G34 とある6か所をS31に変えれば良さそうです
    • good
    • 0
この回答へのお礼

1カ所「S」に変えるのを見落とし焦ってしまいました。面目ありません。おかげ様で、日常使っている面倒だった作業シートが思い通りに作動するようになりました。何回もご教授いただき大変有り難う御座いました。

お礼日時:2020/08/24 16:34

>参照するセルを”G34”から”S31”に変更したところ


>(変更後は”G34”を”G31"にする予定です。)

どちらが正しいのかわかりませんけど、

>良く作動しません。

ではどこに絞ればよいのか?が不明です。
少なくとも検証して『実際はこう動いて欲しいのにこのような動きになった』と言うのが欲しかったですね。
まぁその辺はコード作成者であれば検証は容易でしょうけど、質問文としてはそういう情報が必要かなって。
過去の質問も非公開なので探す手間を考えると作成者任せになるでしょうけど。
⇒つながる質問のリンクを貼っておいてくれても良かったかも。
    • good
    • 1
この回答へのお礼

有り難う御座いました。「G31」は「S31」の入力ミスでした。すみませんでした。

お礼日時:2020/08/24 16:38

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