Calculations
ワークシートオブジェクトです。
Worksheets(value)
は、文字列値、すなわちワークシート(例えばWorksheets("Calculations")
)の名前、またはインデックス(例えばWorksheets(1)
)を通過することができ、それは、ワークシートオブジェクトを渡すことはできません。
変更Worksheets(Calculations)
Worksheets("Calculations")
へのすべての用途(例えばWorksheets("Calculations").Range("E2").Value
)、または完全にWorksheets
方法をバイパスして、ちょうどCalculations
(例えばCalculations.Range("E2").Value
)を使用します。
はまた、文の以前の部分がTrue
として評価されている場合は、あなたのIf
文のElseIf
部分が処理されないことに注意してください。 Hours > 8
あれば、あなたの文の最初の部分が実行されますので、時間< = 8
はまた、あなたは間違ってAnd
演算子を使用する1文を持っていない限り、他のステップのどれも評価されません。 And
オペレータは、左オペランドと右オペランドの両方がTrue
であるかどうかをチェックし、一致する場合はTrue
を返します。それ以外の場合はFalse
を返します。 (例えば、If x > 5 And x < 20 Then
のようなステートメントは、それを使用するのに賢明な方法です)。私はあなたが2つのステートメントを実行するためにそれを使用しようとしていると信じています。これを行う正しい構文は、x = 5 : y = 2
のようなものか、2つのステートメントを別々の行に置くだけです。
私は次のようにあなたが達成しようとしている何だろうと考えている。
Sub Calculate
With Calculations
hours = .Range("E2").Value
If hours <= 8 Then
.Range("A2").Value = hours
.Range("B2").Value = 0
.Range("C2").Value = 0
ElseIf hours <= 12 Then
.Range("A2").Value = 8
.Range("B2").Value = hours - 8
.Range("C2").Value = 0
Else
.Range("A2").Value = 8
.Range("B2").Value = 4
.Range("C2").Value = hours - 12
End If
End With
End Sub
はテキストとしてあなたのコードをアップロードし、私たちがイメージとしてそれを持つために少し使い方があります –