|
如果空行不影响的话,试一下下面的代码,就不发附件了,复制到你文件的vba模块里运行一下,我这边是通过了,就是结果里的空行比较多
Sub test01()
Dim i As Integer, j As Integer, brr, sht1, sht2, rng
Set sht1 = Sheets("sheet1") '为了简化代码将表格定义给变量,可以根据实际情况改变括号内表格的名称
Set sht2 = Sheets("Sheet4")
sht2.UsedRange.Delete '清空结果表中原有数据
j = sht1.Cells(7, 256).End(1).Column '获取统计区域sht1中第7行的最右侧非空单元格的列数
For i = 1 To sht1.Range("A65536").End(3).Row - 7 '遍历数组arr
sht1.Range("A5:CS5").Value = sht1.Cells(7 + i, 1).Resize(1, j).Value '将第8行开始的数据依次复制到第5行
brr = sht1.Cells(7, 3).Resize(1, j - 2).Value '将第7行中要统计的数据装入数组brr
Set rng = sht2.Range("A65536").End(3) '将sheet4表格中的最后一个非空单元格定义给变量rng
If rng = "" Then '对rng进行判断,如果系统默认的非空单元格A1为空
rng.Resize(UBound(brr, 2), 1).Value = WorksheetFunction.Transpose(brr) '则将brr数组转置后写入单元格A1开头的A列区域
Else '否则
rng.Offset(1, 0).Resize(UBound(brr, 2), 1).Value = WorksheetFunction.Transpose(brr) '将brr数组转置后装入A列最后一个非空单元格以后的区域
End If
Next
End Sub
|
|