0

我必须输入很多循环时间,并且必须在其间使用“:”非常糟糕。此信息正在 minitab 中使用,因此输入的格式很糟糕。我必须遍历 sheet1 上的 26 列才能输入 16 个数据单元格。我没有每次都滚动,而是制作了一张单独的表格 (2),其中包含 16 个数据单元格在一个列中,因此我只能在数字键盘上输入数据。格式为 hh.mm。然后一个宏替换了“.”。使用“:”并将其复制到适当位置的 sheet1 中。其他一切正常,但是当输入 hh.m0 时,它会转换为 hh.0m ex。(宏运行后 15.30 变为 15:03)虽然宏运行后 15.34 是 15:34。如果没有零,则代码可以正常工作。大部分代码如下。下午和上午工作正常,但填写它的人没有 t 把上午和下午放在工作表上,所以我们现在使用军事。我对完全不同的代码持开放态度,但这就是我能想到的。

谢谢

Set w1 = Sheets("Data Collection Sheet").Cells
Set w2 = Sheets("Sheet1").Cells

For x = 8 To 15
Cells(x, 2).Activate
Cells(x, 2).Replace what:=".", replacement:=":"
'Cells(x, 2).Replace what:="p", replacement:=" pm"
'Cells(x, 2).Replace what:="o", replacement:=" am"


Next x 
w1(9, 3).Value = w2(9, 2).Value
'  I go on to make other cells the same value but this should give an idea
4

2 回答 2

0

试试 TimeValue 函数:

a = TimeValue("15.30")

如果您会遇到“15.3”,您可以在 TimeValue 语句之前检查并更改:

a = 15.3 'the initial value
b = a - Int(a) 'b = the fractional part
c = (b * 10) - Int(b * 10) 'c = the 2nd digit out of
'the fractional part

If c > 0 Then 'something like mm.d has been
'put in instead of mm.dd
于 2013-10-11T19:23:13.890 回答
0

使用代码的替代方法是使用公式:

=TIME(INT(A1),(A1-INT(A1))*100,0)

小数点左边的数字给你小时。小数点和后面的任何东西都会给你分钟,然后乘以 100 得到整数值。秒 = 0。

我认为由于不包括小数,会议记录给您带来了问题。0.03将给你03然后成为30.30也会给你3因为0.3 = 0.30 = 0.300 = 0.30000,等等。

于 2013-10-11T19:28:23.647 回答