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