以下代码运行后Excel修改内容后退出时就不提示是否保存了
请大神帮我看看以下代码哪里的问题,关闭Excel时没有提示是否保存,而是直接保存退出了。
以下是在ThisWorkbook里面的代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Sheet1.Visible = -1 '显示工作表
For k = 1 To 3
'工作表深度隐藏
Next
If Workbooks.Count > 1 Then
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
ThisWorkbook.Close
Else
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
Application.Quit
End If
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
For k = 1 To 3
'显示工作表
Next
Sheet1.Visible = 2 '工作表深度隐藏
Application.Visible = False
Sheet3.Range("F:F,J:J").EntireColumn.Hidden = False
Sheet6.Visible = True '显示工作表6,如果拿掉将会隐藏工作表所有权限无法看到
Sheet1.Visible = True '显示工作表1,如果拿掉将会隐藏工作表所有权限无法看到
Sheet5.Visible = True '显示工作表5,如果拿掉将会隐藏工作表所有权限无法看到
用户登陆.Show '显示窗体
Application.ScreenUpdating = True
Application.Visible = True
End Sub
以下是窗体的代码:
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "管理员"
.AddItem "边成"
.AddItem "边成2"
End With
ComboBox1.Value = "管理员"
TextBox1.SetFocus
End Sub
Private Sub 确定_Click()
If ComboBox1.Value = "管理员" And TextBox1.Value = 888 Then
ActiveWindow.DisplayWorkbookTabs = True
Application.Visible = True '
End
ElseIf ComboBox1.Value = "边成" And TextBox1.Value = 123 Then
ActiveWindow.DisplayWorkbookTabs = True
Sheet6.Visible = xlSheetVeryHidden '禁止用户看到工作表6
Sheet1.Visible = xlSheetVeryHidden '禁止用户看到工作表1
Sheet5.Visible = xlSheetVeryHidden '禁止用户看到工作表1
Sheet3.Range("L:L,M:M").EntireColumn.Hidden = True '禁止用户看到工作表3的L\M2列
Application.Visible = True
End
ElseIf ComboBox1.Value = "边成2" And TextBox1.Value = 456 Then
ActiveWindow.DisplayWorkbookTabs = True
Sheet6.Visible = xlSheetVeryHidden '禁止用户看到工作表6
Sheet1.Visible = xlSheetVeryHidden '禁止用户看到工作表1
Sheet5.Visible = xlSheetVeryHidden '禁止用户看到工作表1
Sheet3.Range("L:L,M:M").EntireColumn.Hidden = True '禁止用户看到工作表3的L\M2列
Application.Visible = True
End
Else
MsgBox ("密码不正确,无权进入系统")
On Error Resume Next
Unload Me
If Workbooks.Count > 1 Then
ThisWorkbook.Close savechanges:=False
Else
Application.Quit
End If
End If
End Sub
Private Sub 退出_Click()
Unload Me
ThisWorkbook.Close savechanges:=False
Application.DisplayAlerts = True '打开提示
End Sub
最佳答案
应该是保存过了,因为有代码进行了这项工作:
IfWorkbooks.Count>1Then
IfThisWorkbook.Saved=FalseThenThisWorkbook.Save'如果没有保存则保存
ThisWorkbook.Close'退出
Else
IfThisWorkbook.Saved=FalseThenThisWorkbook.Save'如果没有保存则保存
Application.Quit'退出
EndIf
追问:
请问怎样修改才不会自动保存,并且不影响这些代码的效果。
追问:
请大神帮我改改可以波?万分感谢。
追问:
还是直接将下面这句话拿掉?If ThisWorkbook.Saved = False Then ThisWorkbook.Save "如果没有保存则保存 ThisWorkbook.Close "退出 Else If ThisWorkbook.Saved = False Then ThisWorkbook.Save "如果没有保存则保存 Application.Quit "退出 追答:
是的。注释掉就行了,不必删除。 追答:
但是要自己保存了,不然更改后的就不会保存了。
追问:
谢谢大神。想让你帮我写一个打开只读的代码可以吗? 追答:
我写代码也不行,能看懂就不错了,呵呵 追答:
可以在网上找一个类似的,再自己修改一下。
追问:
喔喔,谢谢。
追问:
大神再帮我一个忙可以吗,帮我把我发的那些代码翻译过来下可以吗?谢谢你了。就这些了。 追答:
学会使用帮助对你有很大的作用,学习几年了,你没有多大进展呀。学习方法很重要,在帮助里查,帮助就是教课书。
追问:
谢谢您。
其他回答
暂无其它回答!