Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


40346 / 76732 ←次へ | 前へ→

【41485】Re:別のシートに合計を当てはめたいのです・・・
回答  Kein  - 06/8/12(土) 0:46 -

引用なし
パスワード
   提示されているサンプルデータでテストした限りでは、
以下のようなコードでうまくいきましたが・・。

Sub MyDayJob_TotalTime()
  Dim Sh As Worksheet
  Dim MyR As Range, C As Range
  Dim Dy1 As Date, Dy2 As Date, MyD As Date
  Dim GetT As Long, Mt As Long
  Dim GetD As String
  Dim SetD As Variant
 
  Set Sh = Worksheets("Sheet2")
  With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  With Worksheets("Sheet1")
   .Rows(1).Insert xlShiftDown
   .Range("A1:D1").Value = _
   Array("DAY", "TIME1", "TIME2", "TOTAL")
   Set MyR = .Range("A2", .Range("A65536").End(xlUp)) _
   .Offset(, 3)
   For Each C In MyR
     Dy1 = C.Offset(, -2).Value: Dy2 = C.Offset(, -1).Value
     If Dy1 < Dy2 Then
      GetT = DateDiff("n", Dy1, Dy2)
      If GetT >= 60 Then
        Mt = GetT Mod 60
        If Mt = 0 Then
         C.Value = Format(GetT / 60, "00") & ":00"
        Else
         C.Value = Format(GetT \ 60, "00") & ":" & Mt
        End If
      Else
        C.Value = "00:" & GetT
      End If
     Else
      MyD = TimeValue("23:59:59") - Dy1 + Dy2 + _
      TimeValue("00:00:01")
      C.Value = Format(MyD, "hh:mm")
     End If
   Next
   .Range("A1").Subtotal 1, xlSum, Array(4)
   Set MyR = .Range("D2", .Range("D65536") _
   .End(xlUp).Offset(-1)).SpecialCells(3, 1)
   For Each C In MyR
     GetD = Val(C.Offset(, -3).Value) & "日"
     SetD = Application.Match(GetD, Sh.Range("A:A"), 0)
     If Not IsError(SetD) Then
      Sh.Cells(SetD, 2).Value = Format(C.Value, "hh:mm")
     End If
   Next
   .Cells.RemoveSubtotal
   .Rows(1).Delete xlShiftUp
  End With
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
  Sh.Activate: Set MyR = Nothing: Set Sh = Nothing
End Sub

0 hits

【41472】別のシートに合計を当てはめたいのです・・・ みなみ 06/8/11(金) 13:56 質問
【41476】Re:別のシートに合計を当てはめたいので... 飛ばない豚 06/8/11(金) 15:05 回答
【41482】ありがとうございます。できればVBAで書... みなみ 06/8/11(金) 20:23 質問
【41483】Re:別のシートに合計を当てはめたいのです... かみちゃん 06/8/11(金) 21:06 回答
【41487】Re:別のシートに合計を当てはめたいのです... みなみ 06/8/12(土) 1:35 お礼
【41485】Re:別のシートに合計を当てはめたいのです... Kein 06/8/12(土) 0:46 回答
【41490】Re:別のシートに合計を当てはめたいのです... みなみ 06/8/12(土) 2:34 お礼

40346 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free