提升工作效率:自动化核对乡镇村信息报送情况 点击使用AI助手 了解更多

发布于 2025-01-07 liusiyang 13 编辑

AI 智能搜索

基于灵犀AI办公助手生成
完整内容,请前往灵犀查看

【案例】某乡镇有20个村,表妹需要收集所有村的人员信息,现已收集了17个村的信息,但是由于各村报表人员素质不一,文件命名混乱,单从文件名,无法看出是哪个村的表,也不知道还差哪些村没报送。只有打开每个文件,才能从D2单元格中看出村名。

【结果】表妹需要得到下面的结果,A列是20个村的名称,B列是报送情况,凡是已报送的村,不管它的文件名是否规范,都能从后台提取其D2单元格的村名,在B列相应位置标记“已报送”,未报送的村,则不作标记,这样就能看出哪些村报送了,哪些村没报送。

【操作效果】具体操作效果如下:

【代码】具体代码如下,可按ALT+F11打开WPS宏编辑器,复制下面的代码粘贴到编辑器中。

function 核对报送情况() {

Application.ScreenUpdating=false //关闭屏幕刷新

obj={} //定义字典,存放报送单位

n=Range('a'+Rows.Count).End(xlUp).Row //获取最后行号

ar=Range('a4:a'+n).Value2 //将单位区域写入数组

ar.forEach(v=>obj[v]='') //将单位写入字典

dw=Range('c1').Value2 //将C1单元格的单位名称赋值给变量dw

let fd = Application.FileDialog(msoFileDialogFilePicker) //打开文件选择器

fd.Filters.Clear() //清除文件选择器内容

fd.Filters.Add('Excel文件', '*.xls;*.xlsx;*.xlsm') //显示EXCEL文件

fd.Title = '请选文件' //设置文件选择器标题

if (fd.Show() != -1) { //如果不选择任何文件

alert('你没选中文件!') //弹出提示

return; //结束退出函数

}

for (let i = 0; i < fd.SelectedItems.Count; i++) { //遍历文件

let f=fd.SelectedItems.Item(i + 1) //将文件名赋值给变量f

let wb = Workbooks.Open(f) //打开工作簿,赋值给对象wb

let dw1 = wb.ActiveSheet.Range(dw).Value2 //获取每张表格中的单位名称

wb.Close(false) //关闭工作簿(不保存)

obj[dw1]=='' ? obj[dw1]='已报送' : obj[dw1]='' //判断单位名称在字典中是否存在,存在则表示已报送

}

for(i=4;i<=n;i++){ //按单位名称循环

t=Cells.Item(i,1).Value2 //将单位名称写入变量t

if(obj[t]){ //判断送报单位在字典中是否存在

Cells.Item(i,2).Value2=obj[t] //如果存在就在B列写入“已报送”

}

}

Application.ScreenUpdating=true //关闭屏幕刷新

}

【素材下载】点击下方链接,下载文件到本地文件夹,在本地文件夹中打开,A列输入自己的单位名称,点击“查看报送情况”按钮,选择表格文件,即可实现自动核对。

https://kdocs.cn/l/clfrcEUJ43zn

原文链接:https://bbs.wps.cn/topic/9494

上一篇: WPS从入门到熟练的快速指南
下一篇: WPS表格查找功能快速指南
相关文章
×