-1

この質問を参考に、

条件に応じて行の色を変更する

条件付き書式に慣れてきました。しかし、私はまだこの問題に直面しています。

このコードを使用して、時間を分単位の時間に変換しています。

Dim TestString As String

TestString = Me.Duration

Dim TestArray() As String

TestArray = Split(TestString, ":")

Dim Hours As String
Dim Minutes As String
Dim Seconds As String

Dim HoursMinutes As Integer
Dim MinutesMinutes As Integer
Dim SecondsMinutes As Integer

Hours = TestArray(0)
Minutes = TestArray(1)
Seconds = TestArray(2)

HoursMinutes = CInt(TestArray(0)) * 60
MinutesMinutes = CInt(TestArray(1))
SecondsMinutes = CInt(TestArray(2)) / 60

Dim TimeInMinutes As Integer

TimeInMinutes = HoursMinutes + MinutesMinutes + SecondsMinutes

Me.Duration = TimeInMinutes

ただし、何らかの理由でこれが機能していません。

別々の行に対してこれを行う方法はありますか?

前もって感謝します

追加:

分用のフィールドを作成しようとしましたが、問題は、それらがすべて同じ数値になることです。

4

1 に答える 1

1

dateTime以下のコードには、現在の日付と時刻をこの形式で格納するという文字列変数があります。27/08/2013 10:55:52

文字列はバリアント配列dateTimeに分割されていますarr

Split(dateTime, Chr(32))(1)変数の時間10:55:52部分を返しますdateTime

次に、 (コロン)を区切り文字としてSplit(Split(dateTime, Chr(32))(1), ":")使用して、時間を 3 つの数字に分割します:

したがってarr、時間数、分数、秒数を保持することになります。

は、計算された時間値のCLng((arr(0) * 60) + arr(1) + (arr(2) / 60))Integer/Long 表現を返します

以下のサブを新しいモジュールに貼り付けて実行します

Sub Convert()

    Dim dateTime As String
    dateTime = now

    Dim arr
    arr = Split(Split(dateTime, Chr(32))(1), ":")

    MsgBox "The time " & Split(dateTime, Chr(32))(1) & vbCrLf & _
        " as Integer is equal to " & CLng((arr(0) * 60) + arr(1) + (arr(2) / 60))

End Sub
于 2013-08-27T09:56:43.347 に答える