0

以下の 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

ループと行ごとの手法を使用してそれを行いました。列レベルの減算で直接実行できる方法を探しています。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      ?

ここでは1行しか表示していませんが、複数またはN個の行が存在する可能性があります.私がする必要があるのは、期間を追加して最後の列「TotaltimeDurtion」に配置することです.しかし、最後の列はできません各行のすべての列は値を必要とするべきではありませんが、すべてが空になることはありません.列レベルでもこれを行うことはできますか.ここで期間は hh:mm:ss 形式または指示に従って[h ]:mm:ss. TotaltimeDurtion <- ColC1 + ColC2 + ...+ ColCN.

4

2 に答える 2

2

範囲オブジェクトを使用して、一度に範囲内のすべてのセルに数式を設定できます

range("C1:C10").Formula="=B1-A1"

また、絶対アドレス指定の通常のコピー規則に基づいて式を調整します。

たとえば、上記の例では、C10 は になります=B10-A10。式を「=B1-$A$1」とした場合、C10 は=B10-$A$1

于 2012-12-18T16:13:03.177 に答える
0

ある日付から別の日付を減算してから、セルの書式を設定できます。

'Within the Do..While loop
Dim cell
Set cell = objSheet4.Cells(intRow4,11)
cell.Value = Date2 - Date1
cell.NumberFormat = "hh:mm:ss"
于 2012-12-18T08:21:18.997 に答える