以下代码运行后Excel修改内容后退出时就不提示是否保存了

原问题:以下代码运行后Excel修改内容后退出时就不提示是否保存了
分类:编程开发 > 最后更新时间:【2017-07-13 14:50:17】
问题补充:

请大神帮我看看以下代码哪里的问题,关闭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 "退出 追答:
是的。注释掉就行了,不必删除。 追答:
但是要自己保存了,不然更改后的就不会保存了。
追问:
谢谢大神。想让你帮我写一个打开只读的代码可以吗? 追答:
我写代码也不行,能看懂就不错了,呵呵 追答:
可以在网上找一个类似的,再自己修改一下。
追问:
喔喔,谢谢。
追问:
大神再帮我一个忙可以吗,帮我把我发的那些代码翻译过来下可以吗?谢谢你了。就这些了。 追答:
学会使用帮助对你有很大的作用,学习几年了,你没有多大进展呀。学习方法很重要,在帮助里查,帮助就是教课书。

  • 追问:
    谢谢您。
    最佳答案由网友  傲乡  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    10

    分享到:

    其他回答

    暂无其它回答!

      推荐