WPS JS 宏实现表间导入

工具软件:WPS JS宏编辑器

前言:

我们在工作过程中往往出现一个表复制部分数据到另一个表,并且两个表有部分内容是相同的,数量也比较多,这种情况下,使用WPS JS宏进行表间数据导入十分方便快捷!

提供以下代码:

function 数据导入(){
	let Sheet_one=ActiveWorkbook.Sheets("工作台");  //定义当前在活动的工作表
	let Sheet_two=ActiveWorkbook.Sheets('数据表');	//定义了需要导入的工作表
	let Columns_End=Sheet_two.Range("ZZ1").End(xlToLeft); //定义了需要导入工作表的字段内容终点
	let Wordbook_One=ThisWorkbook;                   //定义当前活动工作薄
	let Path_one=Wordbook_One.Path+'\\导入文件\\*.xlsx';  //定义当前活动工作薄的路径文件内容
	let i=2,y=2,x=2;
	let file=Dir(Path_one);                   //定义当前活动工作薄下面的文件
	while (true){									//定义条件为真时执行
		try{													
			let Path_two=Wordbook_One.Path+"\\导入文件\\"+file;   //把获取的文件赋给一个变量
			let Wordbook_Two=Workbooks.Open(Path_two);			//打开获取的文件
			for(var Sheet_name of Wordbook_Two.Sheets){					//遍历获取的工作薄的工作表
				if(Sheet_name.Name=="Sheet1"){								//当工作表名等“Sheet1”,对这个工作表进行操作
					Columns_Endone=Sheet_name.Range("ZZ1").End(xlToLeft)	//定义被导入的工作表的字段尾单元格,起到一个定位作用
					Rows_Endone=Sheet_name.Range("A9999").End(xlUp)			//定义被导入的工作表的最后一行,也是起到定位至尾单元格
					for (var Columns_value of Sheet_name.Range("A1",Columns_Endone)){	//遍历导入的工作表的字段每一项内容
						Sheet_one.Cells(x,10).Value2=Columns_value.Value2;				//获取被导入工作表的字段内容	
						Sheet_one.Cells(y,8).Value2=file;								//获取被导入工作表的文件名
						Sheet_one.Cells(i,9).Value2=Sheet_name.Name;					//获取被导入工作表的表名
						y++,x++,i++
						let z=2	
						for(var Columns_valueOne of Sheet_two.Range('A1',Columns_End)){			//遍历需要导入的工作表的字段每一项内容
							Sheet_one.Cells(z,11).Value2=Columns_valueOne.Value2;					//获取需要导入工作表的字段内容
							z++
							if(Columns_value.Value2==Columns_valueOne.Value2){						//把需要导入的工作字段各被导入工作字段进行对比,如果相同就进行以下操作
								Sheet_name.Range(Cells(2,Columns_value.Column),Cells(Rows_Endone.Row,Columns_value.Column)).Copy(Sheet_two.Cells(2,Columns_valueOne.Column))		//把相同的列复制到需要导入的工作表
							}
						}
					}		
				}
			}
			Wordbook_Two.Close();			//关闭被导入工作薄
			Sheets("数据表").Activate();		//把数据表定义为当前活动工作表
			file=Dir()	
		}catch(err){
			alert("己导入所有工作表内容")
			break;
	}
	}
}

附加功能:快速清空表格

function 清空数据(){
	let Sheet_two=ActiveWorkbook.Sheets('数据表');
	let Rows_Endone=Sheet_two.Range("A9999").End(xlUp); 
	let Columns_End=Sheet_two.Range("ZZ1").End(xlToLeft); 
	if(Rows_Endone.Row>1){
		Sheet_two.Range(Cells(2,"a"),Cells(Rows_Endone.Row,Columns_End.Column)).ClearContents()
	} 
}

使用WPS JS宏进行办公自动化你是否有兴趣呢?请进行投票

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuangTeacher810

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值