禁止关闭按钮和限制表格打开个数
起两种作用的代码都放在This workbook里的,实际只起到一种作用,请高手帮我修改修改,希望这两种代码都能在一个表你起到作用
第一个:只支持打开一个Excel表格
Private WithEvents app As Application
Private Sub Workbook_Open()
Set app = Application
End Sub
Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
If app.Workbooks.Count > 1 Then Wb.Close False: MsgBox "本系统只支持打开单一文件!"
Application.Visible = False
End Sub
第二个:禁止关闭按钮,使用(点击)退出按钮
Dim BClose As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If BClose = False Then
Cancel = True
MsgBox "关闭已被禁止,请使用""退出""按钮关闭!", vbExclamation, "提示!"
End If
End Sub
Public Sub CloseWorkbook()
'ThisWorkbook.Close SaveChanges:=False
ActiveWorkbook.Save
BClose = True
Me.Close
End Sub
[解决办法]
对了,我新建了一个Workbook,在里面的ThisWorkbook里放了这些代码后保存,关闭.再打开时,你说的两个功能是都起作用的啊. 当然,如我选新建工作簿,你的程序是不会禁止的,因为并没触发app_WorkbookOpen事件嘛.你要想也禁止新建,需再加个
Private Sub app_NewWorkbook(ByVal Wb As Workbook)
Wb.Close False
MsgBox "本系统只支持打开单一文件!"
End Sub
- VB code
Option ExplicitPrivate WithEvents app As ApplicationDim BClose As BooleanPrivate Sub app_WorkbookActivate(ByVal Wb As Workbook)End SubPrivate Sub Workbook_Open()Set app = ApplicationEnd SubPrivate Sub app_WorkbookOpen(ByVal Wb As Workbook)If app.Workbooks.Count > 1 Then Wb.Close False: MsgBox "本系统只支持打开单一文件!"Application.Visible = TrueEnd SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)If BClose = False ThenCancel = TrueMsgBox "关闭已被禁止,请使用""退出""按钮关闭!", vbExclamation, "提示!"End IfEnd SubPublic Sub CloseWorkbook()'ThisWorkbook.Close SaveChanges:=FalseActiveWorkbook.SaveBClose = TrueMe.CloseEnd Sub