虽然过程f()是用public定义的,但是Static a, b的作用域只是在f()这个sub中,其他过程是无法访问到的。
如果确实需要的话你可以将a,b的声明用public放在通用:
public a,b
Public Sub f()
a = 3
b = 4
UserForm1.Show
End Sub
或者你可以将声明放在窗体中
而变量的初始化可以放在窗体的Load事件中
private a,b
private sub form1_load()
a=3
b=4
end sub
Public pas As Long
Sub qq()
Dim i, st
st = MsgBox("你确定要显示答案?需要正确输入密码", 1)
If st = 1 Then
UserForm1.Show
End If
If st + pas = 3315057 Then
For i = 5 To Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Sheet2").Unprotect Password:="3315056"
Cells(i, 5).Formula = "=vlookup(A" & i & ",Sheet2!A:D,4,0)"
Next i
Else
Exit Sub
End If
Sheets("Sheet2").Protect Password:="3315056"
End Sub