このコードを使用してください。 Regular module
ではなく、Worksheet module
にこのコードを貼り付ける必要があります。次に、Range("A1:A100")
を数値を分割する範囲に調整してください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DivRg As Range
Set DivRg = Range("A1:A100")
Set DivRg = Application.Intersect(Target, DivRg)
If DivRg Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target = Target/60
Target.Offset(0, 5).Value = 1
Application.EnableEvents = True
Set DivRg = Nothing
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim DivRg As Range
Set DivRg = Range("A1:A100")
Set DivRg = Application.Intersect(Target, DivRg)
If DivRg Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
If Target.Offset(0, 5).Value = 1 Then
Target = Target * 60
Target.Offset(0, 5).Value = 0
End If
Application.EnableEvents = True
Set DivRg = Nothing
End Sub
あなたのタスクを達成するために、あなたは1つのヘルパーの列が必要になります(私は列F
を選んだ)いますが、任意の列を選択し、その列Target.Offset(0, 5).Value
に対処するためのコードのこの部分を変更することができます。たとえば、ヘルパー列を列E
にする場合は、このコードTarget.Offset(0, 4).Value
を使用します。サブコードの3つの部分すべてでこのコードを置き換えてください。
このルールが適用されるセルの範囲はありますか、このルールをシート内のすべてのセルに適用しますか? –
そのセルの値が後続の計算で使用される場合は、どの値を使用する必要がありますか?入力値、または*を60 *値で割った値? –
この練習の目的は何ですか?時間の計算を行う場合は、これを達成するためのより簡単な方法があるかもしれません。 –