首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

禁止关闭按钮和限制表格打开个数,该如何处理

2012-01-21 
禁止关闭按钮和限制表格打开个数起两种作用的代码都放在This workbook里的,实际只起到一种作用,请高手帮我

禁止关闭按钮和限制表格打开个数
起两种作用的代码都放在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 

热点排行