宏简单实现账户控制可编辑列
功能实现的局限性不是一般的大。仅供思路参考。
宏编辑器插入窗体,同时需创建4个控件
需要,添加信任宏,
宏代码:
var EditableColumns=[];
function Workbook_Open(){ //Application.Visible = false;
UserForm1.Show();
}
function Workbook_SheetSelectionChange(Sh, Target){
if (EditableColumns[0] == "" || EditableColumns[0] == null || EditableColumns[0] == undefined){
Application.ActiveWorkbook.Close(0);
}else{
if(EditableColumns.indexOf(Target.Column)== -1 || Target.Columns.Count>1){ ActiveSheet.Cells.Item(1,EditableColumns[0]).Select();
} }}/** * UserForm1_CommandButton1_Click Macro */
function UserForm1_CommandButton1_Click(){
var username = UserForm1.TextEdit1.Text;
switch (username){
case "0":
EditableColumns = [6]; //账号 "0" 允许编辑 第6列,也就是 F 列
UserForm1.Close();
break;
case "1":
EditableColumns = [4,5]; //账号 "1" 允许编辑 第4列,第5列,也就是 D E 列
UserForm1.Close();
break;
default:
alert("账号不存在,请重新输入");
} }
/** * UserForm1_CommandButton2_Click Macro */
function UserForm1_CommandButton2_Click(){
Application.ActiveWorkbook.Close(0);
UserForm1.Close();}
function UserForm1_Terminate(){
//Application.ActiveWorkbook.Close(0); //目前 X64 525版本,启用本行代码就会崩溃。
//alert("用户窗体已经关闭")
}