偶然看见别人一个给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事件,以便保证有验证