EXCEL高手请进。当某个单元格为空时在另外表格复制该行,当不为空时拆分该行

2024-11-25 10:31:52
推荐回答(1个)
回答1:

这个要用VBA来做。如果在原表中操作涉及到插入行

如果是复制数据到新表。需要循环复制粘贴。

交给程序完成吧。

sub a()
dim i%,j%,k%,arr
k=2
with sheets(2) ' 假设结果是复制到第2个表中
rows(1).copy .[a1]  '复制第1行到表2
for i=2 to [k65536].end(3).row  '从第2行到最后个有数据的行
     if instr(1,range("M"&i),";",vbtextcompare)>0 then '如果存在分号,注意这个分号是英文的
        arr=split(range("M"&i),";") '以分号分隔为数组
        for j=0 to ubound(arr)
             range("M"&i).copy .range("A"&k)  '复制第i行到表2
             .range("M"&k)=arr(j)  '更改新表中K行的M列数据为数组第J个元素
            k=k+1  'K加1,换行
       next j
    else
        rows(i).copy .range("A"&k)
        k=k+1
    end if
next i
end with
end sub