gpt4 book ai didi

excel - 具有两个值的单个单元格的小时计算器

转载 作者:行者123 更新时间:2023-12-04 20:03:43 27 4
gpt4 key购买 nike

我正在创建一个新的轮类表。 (我是一家酒吧的团队负责人,但我通常处理技术问题)。
我想将小时数计算为总计。困难的一点是用户在一个单元格中输入小时如下。
1100 - 1600
我需要让 Excel 适合用户。
我想要的是从单元格中获取信息,将其分成两部分,然后计算小时数,将它们添加到运行总数中,然后在每个人的一周结束时将其放入一个单元格中。
我有 Python 的基本知识。我从 Stack Overflow 打开了大约 3000 个标签,但找不到任何对我有用的东西。

最佳答案

应先进行将文本数据更改为时间数据的过程。然后你只需要计算两者之间的差异并将它们相加即可。您可以使用拆分功能和时间序列功能。

Sub test()
Dim rngDB As Range
Dim vDB As Variant, vR() As Variant
Dim vSplit As Variant
Dim Ws As Worksheet
Dim i As Long, r As Long
Dim s1 As String, s2 As String


Set Ws = ActiveSheet 'set worksheet, set Ws = Sheets(1)
With Ws
Set rngDB = .Range("a1", .Range("a" & Rows.Count).End(xlUp)) ' set data range
End With

vDB = rngDB 'get value from range to 2D array
r = UBound(vDB, 1)
ReDim vR(1 To r, 1 To 3) 'make new 2D array
For i = 1 To r
vSplit = Split(vDB(i, 1), "-")

s1 = Trim(vSplit(0)) '1100
s2 = Trim(vSplit(1)) '1600

vR(i, 1) = TimeSerial(Left(s1, 2), Right(s1, 2), 0) '11:00
vR(i, 2) = TimeSerial(Left(s2, 2), Right(s2, 2), 0) '16:00
vR(i, 3) = vR(i, 2) - vR(i, 1) '16:00 - 11:00
Next i

'Wirte Result array vR to Sheet cell "c1"
With Ws
With .Range("c1").Resize(r, 3)
.Value = vR
.NumberFormatLocal = "hh:mm"
End With
End With
End Sub
工作表图像
enter image description here

关于excel - 具有两个值的单个单元格的小时计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62987740/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com