这类问题一般的解决套路是:
程序代码:
sub x()
dim db, arr, i, j
db = sheets("附件1").usedrange ' 获取附件1的清单
arr = sheets(附件2").usedrange ' 获取附件2的模板,注意必须从第一行开始,末尾不要有多余的空行,否则这里需要固定范围
arr = sheets(附件2").range("a1:d8") ' 上一行失灵的时候用这行
i = 5 ' 附件1 第一行数据的行
j = 1 ' 附件2 开始输出内容的行
while i<=ubound(db)
if db(i,1)<>"" then ' 只输出【序号】不为空的行
j = j + ubound(arr) ' 跳过模板大小的行数
arr(2, 4) = db(i, 1) '序号 =》 编号
'这里继续写模板各栏的赋值,可能有许多行
with sheets(附件2")
.rows("1:" & ubound(arr)).copy .cells(j, 1) '复制模板区域的格式
.cells(j, 1).resize(ubound(arr), ubound(arr,2)) = arr '填充数据
end with
end if
i = i + 1
wend
end sub