判断单元格为空的语句是="",添加和插入行的方式可以实现,最简单的方式是全新建表。
我下面用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
我的测试数据:
执行效果:



											
	    

	

