|
插入一列和把数据往后移动一列并没有实质区别,是一个意思;
插入列需要有插入的实际动作,也会影响后续数据的读取。往后移动一列,则不需要插入的动作,但需要改变参数的位置;
两者半径八两,就看你对哪个更熟了;
从截图看,
brr(i,1)=arr(i,1)
brr(i,2)=arr(i,2)
brr(i,3)=arr(i,3) '前面 3 列 都是一一对应的
然后,
if d(ssht.name & brr(i,2))<brr(i,3) then '判断数据的大小
brr(i,4)=... '把第4列数据存在数组的第 4 列
endif
再后面是:
brr(i,5)=arr(i,4)
brr(i,6)=arr(i,5)
brr(i,7)=arr(i,6) '这 3 列 都错开了一位,说明在数组中特意把第 4 列留给了新数据
最后,
ssht.[a1].resize(......)=brr '就是把生成的新数据再写回表格中,新数据包含了新增的第4列,相当于数据插入了一列,也可以看成是往后移动了一列
这个代码没什么好改的,只要能达到效果就行。作者明显是习惯使用数组的,改成插入动作的方式就不符合这段代码的风格了;
|
|