前回、同様の質問をさせていただき、
皆様のご回答のおかげで希望する形に近づくことができました。
【前回の質問】https://teratail.com/questions/301281?whotofollow=
更に質問なのですが、
下記の添付資料のように
矢印の示す箇所がF列とG列が逆に表記されてしまいます。
作業区分の合計をF列に、
図面区分の合計(F列の合計)をG列に表記する方法をご教授ください。
そして、黄色に塗った(空白になっている)セルを
消す(上に詰める)ことはできますでしょうか?
(総計の行は消して、合計時間は作業時間合計の横【G列】に表記したいです)
お手数をおかけしますが重ねてご教授をお願い致します。
該当のソースコード
Sub F列の合計のみG列に移動()
'A列の最終行を取得
n = Cells(Rows.Count, "A").End(xlUp).Row
MsgBox n
For i = 2 To n
'A列が空白でない限り実行
'または If Range("A" & i) <> "" Then
If Cells(i, 1) <> "" Then
MsgBox i 'ここでの[i]は行番号です
Cells(i, 1).Select '結合された全てのセルを選択される
Cells(i, 6).Select '結合されていないのでRange("F" & i)のみ選択
Cells(i, 7).Value = Cells(i, 6).Value
Cells(i, 6).ClearContents
End If
Next i
End Sub
試したこと
Sub E列の合計のみF列に移動()
Dim i As Long
Dim j As Single '作業時間
Dim a As Long '行№
For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
Cells(i, 3).Select
If Cells(i, 3) = Empty Then
j = 0
Else '作業時間の計算開始**************
If j = 0 Then 'jが "0"の場合新たに集計する
a = i
j = j + Cells(i, 5).Value 'E列の作業時間累計確保
Cells(a, 6).Value = j '結合された小計へ転記
Else '上と同じ項目なので累計とる
j = j + Cells(i, 5).Value 'E列の作業時間累計確保
Cells(a, 6).Value = j '結合された小計へ転記(集計する行番地)
End If
End If
Next i
Call 小計
End Sub
Sub 小計()
Dim n As Long
Dim i As Long
Dim myrow As Integer
Dim m As Long
n = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To n - 2
If Cells(i, 1) <> "" Then
'結合されたセル行数取得
myrow = Cells(i, 1).MergeArea.Rows.Count
Cells(i, 6).Value = WorksheetFunction.Sum(Range(Cells(i, 5), Cells(i + myrow, 5)))
Cells(i, 7).Value = Cells(i, 6).Value
End If
Next i
'「統計」=Sum関数
Cells(n - 1, 7).Value = WorksheetFunction.Sum(Range(Cells(2, 7), Cells(n - 2, 7)))
End Sub
上記の【Sub E列の合計のみF列に移動()】をマクロに追記してみましたが、
F列の小計がE列に移動してしまい、F列とG列には違う値が表記されてしまいます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/04 00:53
2020/11/04 12:29
2020/11/04 14:19