0

シフトのタイミング (例: 5:00:00) から "00:30:00" を差し引いて別の変数に格納するコードを教えてください。シフト時間は入力ボックスから取得されます。足し算は正しい答え (5:30:00) を与え、控除は 0.528999 などを与えます。

  If shin2 <> "" Then
  intime2 = TimeValue(shin2) + TimeValue("00:30:00")
  MsgBox intime2
  intime22 = TimeValue(shin2) - TimeValue("00:30:00")
  MsgBox intime22
  End If

敬具

4

2 に答える 2

1

検討:

Sub SHIFTTIME()
    Dim t As Date, s As String
    s = Application.InputBox(Prompt:="Enter time as hh:mm:ss", Type:=2)
    t = TimeValue(s) - TimeSerial(0, 30, 0)
    MsgBox t
End Sub
于 2013-10-26T15:14:07.760 に答える
0

私はあなたのコードをチェックしましたが、私には問題ないようです。

Sub TimeValueTest()

Dim shin2 As String
Dim intime22 As Double, intime2 As Double


 shin2 = InputBox("Enter time in hh:mm:ss format")

 If shin2 <> "" Then
  intime2 = TimeValue(shin2) + TimeValue("00:30:00")

  Debug.Print "intime2"
  Debug.Print "value: " & intime2
  Debug.Print "time: " & Format(intime2, "hh:mm:ss")
  Debug.Print "----"

  intime22 = TimeValue(shin2) - TimeValue("00:30:00")

  Debug.Print "intime22"
  Debug.Print "value: " & intime22
  Debug.Print "time: " & Format(intime22, "hh:mm:ss")
  End If


End Sub

入力ボックスに 05:00:00 を入力すると、以下が出力されます。

intime2
value: 0.229166666666667
time: 05:30:00
----
intime22
value: 0.1875
time: 04:30:00

ボンネットの下で TimeValue は時間文字列を 10 進数に変換するため、奇妙な結果が変数とその宣言方法に関係している可能性があると思われます。

于 2013-10-27T13:31:53.123 に答える