WPS宏实现数据录入与必填项验证的教程 点击使用AI助手 了解更多
发布于 2024-11-13 liusiyang 39 编辑
⭐【案例描述】
下图是两张工作表,【录入】工作表用于填写数据,填写完数据,点击“录入”按钮,可将数据保存到【数据库】工作表中。现在我们需要实现一个“必填项”设置功能,即当在标题中插入包含“必填”二字的批注时,如果其下方的单元格为空,则提示该列不能为空,同时停止保存动作,反之,若批注中没有“必填”二字,则可以为空,可正常保存。
⭐【操作效果】
⭐【JSA代码】
按ALT+F11打开WPS宏编辑器,复制下方代码粘贴到编辑器中。
👉 |
function Workbook_SheetChange(Sh, rg) //工作表变动事件 { if(rg.Address(0,0)=='A2'){ //当A2单元格发生变动时 var newDate = new Date(); //获取当前时间 t=newDate.toJSON().split('.')[0].replace('T',' ') //格式化日期时间 Range('d2').Value2 = t //将时间写入D2单元格 } }
function 录入(){ for(rg of Range("a1:e1")){ //遍历标题行 let cmt = rg.Comment //将标题行中的批注对象赋值给cmt if(cmt!=undefined && cmt.Text().includes('必填')){ //如果存在批注且批注中包含“必填”二字 if(rg.Offset(1,0).Value2==null){ //如果标题下的第2行不为空 MsgBox("【" + rg.Value2 + "】不能为空!") //提取该列不能为空 return; //结束程序 } } } let sh=Sheets.Item('数据库') //将“数据库”工作表赋值给sh i = sh.Range('a' + Rows.Count).End(3).Row + 1 //取数据库最后一行数据的下一行号 Sheet2.Range("a" + i + ":e" + i).Value2 = Range("a2:e2").Value2 //写入数据 Range("a2:e2").Value2 = "" //清空录入表数据 MsgBox('保存成功!') //弹出提示 } |
⭐【素材下载】
https://kdocs.cn/l/cfvN74MRp145
原文链接:https://bbs.wps.cn/topic/11787