-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

但是,由于某种原因,这不起作用。

你有什么想法我怎样才能为单独的行做到这一点?

提前致谢

添加:

我尝试为 Minutes 创建一个字段,问题是它们将获得所有相同的数字。

4

1 回答 1

1

下面的代码有一个名为的 String 变量dateTime,它以这种格式存储当前日期和时间:27/08/2013 10:55:52

字符串被拆dateTime分为 Variantarr数组

Split(dateTime, Chr(32))(1)返回变量的时间10:55:52部分dateTime

然后使用(冒号)作为分隔符Split(Split(dateTime, Chr(32))(1), ":")将时间分成 3 个数字:

所以你最终会arr持有# of hrs、# of minutes、# of seconds。

CLng((arr(0) * 60) + arr(1) + (arr(2) / 60))返回计算的时间值的整数/长整数表示

将下面的 sub 粘贴在一个新的模块中并运行它

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 回答