判断单元格为空的语句是="",添加和插入行的方式可以实现,最简单的方式是全新建表。
我下面用VBA编写了代码来实现这个功能的程序代码:
程序代码:
Option Explicit
Sub 生成值班表()
Dim arr, i&, j&, k&, k1&
arr = Sheets("sheet2").UsedRange
Sheets("sheet1").Activate
Cells.Delete
Range("a1") = "签到表"
Range("a1:c1").Merge
Range("a2:c2") = Array("日期", "姓名", "备注")
k1 = 3
For i = 2 To UBound(arr)
k = k1
Cells(k, 1) = arr(i, 1)
For j = 2 To UBound(arr, 2)
If arr(i, j) <> "" Then
Cells(k, 2) = arr(i, j)
k = k + 1
End If
Next j
If k - 1 > k1 Then Range(Cells(k1, 1), Cells(k - 1, 1)).Merge
k1 = k
Next i
Cells(k, 1) = "合计"
ActiveSheet.UsedRange.Borders.LineStyle = xlContinuous
End Sub
我的测试数据:
执行效果:








