一般宏把这样的数据生成到新表中,代码可以是这样的:
sub 宏1()
dim arr,i,j,k,m,n,t
arr=activeworksheet.usedrange
n=ubound(arr)
m=ubound(arr,2)
workbooks.add
cells(1,1).resize(n,8)=arr
k=n+1
for i=2 to n
j=9
while jif arr(i,j)<>"" then
for t=1 to 5
cells(k,t)=arr(i,t)
next t
cells(k,6)=arr(i,j)
cells(k,7)=arr(i,j+1)
cells(k,8)=arr(i,j+2)
k=k+1
end if
j=j+3
wend
next i
end sub
代码是把数据添加到末尾的,没有中途插入,你可以运行完毕后排序。