2016-06-15 3 views
1

私は、エクセルVBAで単純なユーザーフォームを作成しました。これには、追加ボタンと減算ボタンがあります。 1つをクリックすると、現在の時間が入っている行の値に1を加算する必要があります。excelユーザーフォームボタンが機能しない

たとえば、その7:35と誰かがクリックすると、7桁のBを持つ行に1が追加されます。このコードをvbYesNoボタンといくつかのif文で初期化すると、私はそれがないユーザーフォーム上のボタンのクリックで同じコードを使用し、私は理由を把握することはできません。次のように私のコードは次のとおりです。

Private Sub CommandButton1_Click() 
Sheets("Front End").Unprotect ("29745") 
h = Hour(Now) 
    For Each c In range("B8:B20") 
     If h = Hour(c) Then 
      c.Offset(0, 6) = c.Offset(0, 3) + 1 
      Exit For 
     End If 
    Next c 
Sheets("Front End").Protect ("29745") 
End Sub 
------------------------------------------------------ 
Private Sub CommandButton2_Click() 
Sheets("Front End").Unprotect ("29745") 
h = Hour(Now) 
    For Each c In range("B8:B20") 
     If h = Hour(c) Then 
      c.Offset(0, 6) = c.Offset(0, 3) - 1 
      Exit For 
     End If 
    Next c 
Sheets("Front End").Protect ("29745") 
End Sub 

誰も私が私が間違って持っているものと私はそれを修正するために何をする必要があるか理解するのを助けることができますか?

ありがとうございました!

+0

コマンドボタンの名前は同じですか?あるいは、後にそれらを変更しましたか?クリックをデバッグすると、フォームを表示する前にブレークポイントを設定することができます。 – Sgdva

答えて

1

あなたは、その列に1ずつ増加しようとしている場合は、ここで問題です:

c.Offset(0, 6) = c.Offset(0, 3) + 1 

c.Offset(0, 6) = c.Offset(0, 6) + 1 'or both 3 

あなたのオフセットが一致ではなかったはずです。減算にも同じ問題があります。列6の値から1を減算しようとしていない限り、それを3列目に配置します。この場合、このコードは正常に動作するはずです。

+0

ありがとう – Vbasic4now

関連する問題