ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7194|回复: 11

[求助]在设置窗体时,如何隐藏×关闭按钮?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-3-28 19:56 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如题
[此贴子已经被作者于2008-3-28 20:03:46编辑过]

TA的精华主题

TA的得分主题

发表于 2008-3-28 21:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

建议使用关闭事件

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-28 22:36 | 显示全部楼层
我在开机时是:
Private Sub Workbook_Open()
    Application.Visible = False
   登入.Show
   End Sub
关闭:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Visible = True
End Sub
不知道那不对??按登入窗口--《×》关闭按时可以关闭,可是再双击这个文件时,会出现“文件已打开。重新执行打开操作会造成前面所做的更改被放弃,是否重新打开"。我把Application.Visible = True改成ThisWorkbook.Close False还是不行?不知如何更改????

TA的精华主题

TA的得分主题

发表于 2008-3-28 22:45 | 显示全部楼层

不能使用这个语句:application.visible=false

这个语句是在你打开后,把工作簿的可视性设置为不可视,并没有关闭工作簿,所以提示已打开

建议你要"登入"窗体的关闭事件中写上 application.visible=true,这样才能改回可视属性

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-28 23:00 | 显示全部楼层
谢谢,我是用于登入文件窗口的,前面
Private Sub Workbook_Open()
    Application.Visible = False
   登入.Show
   End Sub
把工作簿设置为不可视没有错,就是在关闭事件中不知错在那?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Close False
End Sub
文件打开登入窗口就会被认为已更改。。所以会出现“文件已打开。重新执行打开操作会造成前面所做的更改被放弃,是否重新打开"。

TA的精华主题

TA的得分主题

发表于 2008-3-28 23:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

一、在窗体中加入以下代码,让按X失效

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If Cancel = False Then Cancel = True
End Sub

二、在窗体的[退出]按钮执行以下代码

Private Sub CmdQuit_Click()
If MsgBox("是否确认退出XX管理系统?", vbOKCancel + vbInformation, Msgts) = vbOK Then
  If Workbooks.Count > 1 Then
    Workbooks("test.xls").Close savechanges:=False '有其他工作簿存在时
  Else
    ThisWorkbook.Saved = True
    Application.Quit
  End If
End If
End Sub

上述代码可以根据设计需要和个人口味自行更改。。。

[此贴子已经被作者于2008-3-28 23:08:17编辑过]

TA的精华主题

TA的得分主题

发表于 2008-3-28 23:08 | 显示全部楼层
QUOTE:
以下是引用yy6831817在2008-3-28 23:00:56的发言:
谢谢,我是用于登入文件窗口的,前面
Private Sub Workbook_Open()
    Application.Visible = False
   登入.Show
   End Sub
把工作簿设置为不可视没有错,就是在关闭事件中不知错在那?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Close False
End Sub
文件打开登入窗口就会被认为已更改。。所以会出现“文件已打开。重新执行打开操作会造成前面所做的更改被放弃,是否重新打开"。

     对啊,你关了“登入”窗体,但实际上并没有关闭整个工作簿,因为这个时候你的工作簿只是不可见的而已,所以在“登入”窗体的关闭事件中要设置一下工作簿的可视属性。如果没有理解的话,建议你上传文件

[此贴子已经被作者于2008-3-28 23:09:57编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-28 23:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢俩位
让按X失效。。。现在可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-28 23:28 | 显示全部楼层
大侠现在按X是失效。。。可是进入后窗体没有关掉???还是不行?
我用的是这个代码:
Private Sub Workbook_Open()
    Application.Visible = False
   登入.Show
End Sub
*********************************
窗体代码:
Private Sub CommandButton1_Click()
If TextBox1.Value = "333" And TextBox2.Value = "123" Then
    Unload Me
Else
    MsgBox "    密码错误"
   ThisWorkbook.Close False
End If
Application.Visible = True
End Sub
---------
Private Sub CommandButton2_Click()
ThisWorkbook.Close False
End Sub
------------
Private Sub TextBox1_Change()
End Sub
-----------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If Cancel = False Then Cancel = True
End Sub
如何关掉窗体??代码??
[此贴子已经被作者于2008-3-28 23:30:07编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-3-28 23:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
可以了
End If
Application.Visible = True
加个End
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 19:00 , Processed in 0.039688 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表