【发布时间】:2012-12-19 02:31:52
【问题描述】:
假设我有下面的excel表,我需要找到它们之间的差异,结果需要放回另一列:
ColA ColB ColC
9/3/2012 8:31:59 AM 09/17/2012 6:45:56 PM Result
9/4/2012 8:31:59 AM 10/17/2012 6:45:56 PM Result
我使用 Loop 和 Row-By-Row 技术做到了这一点。寻找一种方法,如果它可以直接通过列级减法完成。说 ColB-ColA -> ColC。整个操作应该一次执行。结果应该是 "hh:mm:ss"。
代码
IntRow4=2
Do While objSheet4.Cells(IntRow4,1).Value <> ""
If objSheet4.Cells(IntRow4,9).Value <> "Open" Then
Date1=objSheet4.Cells(IntRow4,7).Value
Date2=objSheet4.Cells(IntRow4,8).Value
objSheet4.Cells(IntRow4,11)=TimeSpan(Date1,Date2)
End If
IntRow4=IntRow4+1
Loop
更新
ColA1 ColB1 ColC1 ColA2 ColB2 ColC2 ..... ColAN ColBN ColCN TotaltimeDurtion
Date Date 11:25:20 Date Date 10:25:00 Date Date 11:25:20 ?
这里我只显示了一行,但可以有多个或 N 行。我需要做的是,我想添加持续时间并将它们放在最后一列“ TotaltimeDurtion”。但是最后一列不能固定。每行的所有列都不需要值,但永远不会是空的。我们也可以在列级别执行此操作。这里的持续时间是 hh:mm: ss 格式或按照您的说明 [h]:mm:ss。 TotaltimeDurtion
【问题讨论】:
-
您为什么不想为此使用 Excel 公式?
=B1-A1并格式化为时间? -
我会用我的VBScript来做,excel没有机会在上面设置任何这样的公式。所有的列都是动态的,所以应该用脚本计算。
-
@TukaiRakshit 你提到你在这个问题上需要帮助。似乎有答案。请说明您还需要什么?
-
@bonCodigo 这里的答案只提供给静态工作表,用于由脚本填充数据的工作表,这样的功能我不能放在任何列上作为固定的,因此我需要一些东西可以总结运行时的所有持续时间!!
-
@bonCodigo 你告诉我或者给我一个代码,我可以通过它添加两个持续时间,它们是
hh:mm:ssrest 我将设置。请给我任何快速的这种持续时间添加功能。