【1】xls.[a1]改为xls.range(a1)
【2】
activesheet,这时是你新建的sheet,不是你有数据的sheet,
可以先激活你有数据的sheet,
如:workbooks(你有数据的工作表名).worksheets(1).active然后再copy
或者在新建一个workbook之前,如果有数据的workbooks中的sheet是当前激活的sheet,则可以先将它赋值给变量。dimasnewworksheet
setasactivesheet
然后再建立新的工作表,copy时用:
as.range(a2:f20).specialcells(xlcelltypevisible).copyxls.range(a1)
给你举一个代码段的例子,如果你会basic,在此基础由解决你的问题就不难了
dimi,num1
num1sheets(计算).cells(65536,1).end(xlup).row
计算sheets(计算)a列最后一行数据的位置
fori1tonum1
ifsheets(计算).cells(i,1)100thensheets(公布表).cells(i,1)sheets(计算).cells(i,1)
nexti
当sheets(计算)第1列的数据大于100时,自动拷入sheets(公布表)的相应列中
如果你想将sheets(公布表)中的空格删除,可以这样写
dimi,num1,k
num1sheets(计算).cells(65536,1).end(xlup).row
计算sheets(计算)a列最后一行数据的位置
k1
fori1tonum1
ifsheets(计算).cells(i,1)100then
sheets(公布表).cells(k,1)sheets(计算).cells(i,1)
kk1
else
kk
endif
nexti