wps用js宏给文档增加用户名密码验证

偶然看见别人一个给office文档增加验证的vba教程,觉得很有意思,就打开wps验证了一下

wps在windows版本支持vba和js,js默认,vba需要自己下载相关插件折腾,linux版本wps个人版默认没有支持2次开发的高级功能,所以找不到菜单的就别找了

网上搜了别人教程,自己完成了如下代码几个功能,还是值得记一下,为以后进一步学习奠定基础

复制代码
/**
 * UserForm1_CommandButton2_Click Macro
 */
function UserForm1_CommandButton2_Click()
{
 	UserForm1.Close();
 	ActiveWorkbook.Close();
}
/**
 * UserForm1_CommandButton1_Click Macro
 */
function UserForm1_CommandButton1_Click()
{
	
if( UserForm1.TextEdit1.Text==Sheets.Item("Sheet1").Range("A1").Value2 && UserForm1.TextEdit2.Text==Sheets.Item("Sheet1").Range("B1").Value2){
	alert("You are allowed to continue reading this article");
	UserForm1.Hide();
}else{
		alert("You have no authority");
		ActiveWorkbook.Close();
}
}

/**
 * CommandButton1_Click Macro
 */
function CommandButton1_Click()
{
var Arr1=[];
	var Arr2=Range("a2:b13").Value();
	Range("d4:e13").ClearContents();
	for (var ar of Arr2){
		if (ar[1]>=100){
			Arr1.push(ar);
		}
	}
	Range("d4").Resize(Arr1.length,2).Value2=Arr1
	Cells(12,7).Value2=gettimestr();
}
/**
 * CommandButton2_Click Macro
 */
function CommandButton2_Click()
{
	UserForm1.Show();
}


function UserForm1_Initialize()
{
UserForm1.TextEdit1.Text=Sheets.Item("Sheet1").Range("A1").Value2;
UserForm1.TextEdit2.Text=Sheets.Item("Sheet1").Range("B1").Value2;
}


function Workbook_SheetActivate(Sh)
{
alert("Workbook_SheetActivate");
UserForm1.Show();
}


function Workbook_Open()
{
   // Application.Speech.Speak("美好的一天就从这一刻开始吧!",true)
   alert("Workbook_Open");
UserForm1.Show();
}
function Application_WorkbookBeforeClose(Wb, Cancel)
{
    alert("就想问老板,可以下班了吗?")
}

窗体也很简单,2个文本输入框2个按钮,一个验证密码一个取消直接退出

注意宏macro是高级功能,保存文件需要是xlsm后缀,并且默认wps是不开启的,打开宏文件会提示是否启用宏功能,如果更改wps默认设置,是能够启用Workbook_Open功能的,否则这个事件可能不会被触发,所以我另外调用Workbook_SheetActivate事件,以便保证有验证

相关推荐
每日新鲜事14 小时前
北大医院引入WPS Comate智能助手,加速医院管理智能化进程
大数据·人工智能·wps
xiaopai9452 天前
工程合同数字化:从WPS平面台账到业务关系型管理系统的演进与验证
平面·wps·工程管理·建米软件·项目合同管理
xiaopai9453 天前
用WPS设计工程库存预警表:字段、计算逻辑与异常场景
wps·建米软件·库存预警管理
如意机反光镜裸4 天前
如何合并局域网共享文件夹中的多个 Excel 工作簿?(免 WPS 会员解决方案)
服务器·excel·wps
xiaopai9455 天前
从平面台账到业务关系链:用WPS做工地材料管理表的数据边界与系统架构演进
平面·系统架构·wps·建米软件·材料管理
灵析表格5 天前
灵析表格财务函数深度实用性分析与实操教程
开发语言·ai·json·excel·wps
小爬的老粉丝6 天前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
xiaopai9458 天前
从WPS进销存表到物资管理系统:业务逻辑与数据模型的技术差距分析
wps·建米软件·材料进销存
less_121388 天前
HarmonyOS WPS Open SDK:不落地、水印与功能开关的合规打开策略
华为·harmonyos·wps
灵析表格9 天前
灵析表格文本处理函数技术白皮书:WPS Excel 官方函数扩展库 18 项文本规整与正则批处理企业落地标准
ai·json·excel·wps