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

上一篇: WPS从入门到熟练的快速指南
下一篇: 如何在WPS文档中插入特殊符号
相关文章