2022-10-18 14:12来源:m.sf1369.com作者:宇宇
内容提要:【vba 复制】
【1】xls.[a1]改为xls.range(a1)
【2】activesheet,这时是你新建的sheet,不是你有数据的sheet,
可以先激活你有数据的sheet,
如:workbooks(你有数据的工作表名).worksheets(1).active然后再copy
或者在新建一个workbook之前,如果有数据的workbooks中的sheet是当前激活的sheet,则可以先将它赋值给变量。dimas=newworksheet
setas=activesheet
然后再建立新的工作表,copy时用:
as.range(a2:f20).specialcells(xlcelltypevisible).copyxls.range(a1)
那你在前面加一个选择文件窗口然后加判断语句 if name=name1 then 代码1 else msg “提示不符合要求”endif
这样即可完成你的要求。
你每次都复制到A1,当然会覆盖,应该每次复制到A列最后一个数,可以这样写:
i=sheets(sheet1).usedrange.rows.count+1
myvalue = InputBox(请输入要查找的值:)
Set myrange = Cells.Find(myvalue)
Rows(myrange.Row).Copy Destination:=Sheets(sheet1).Range(A & i)