Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4005|回复: 1

[分享] 【烟花原创】VBA零基础之第92篇 Application对象(十)

[复制链接]
发表于 2014-1-27 17:30 | 显示全部楼层 |阅读模式
本帖最后由 hwc2ycy 于 2014-1-27 17:32 编辑

Quit 方法
 退出 MicrosoftExcel。
 说明:
  使用此方法时,如果未保存的工作簿处于打开状态,则 Microsoft Excel 将显示一个对话框,询问是否要保存所作更改。
  要防止发生这种情况,请在使用 Quit 方法前保存所有工作簿或将 DisplayAlerts 属性设置为 False。
  如果该属性为 False,则在 Microsoft Excel 退出时,即使有未保存的工作簿,也不会显示对话框,而且不保存就退出。
  如果将工作簿的 Saved属性设置为 True,而没有将工作簿保存到磁盘上,在退出时不会提示保存该工作簿。
 示例1:
  ThisWorkbook.Saved= True
  Workbooks.Add
  ActiveWorkbook.Saved= True
  Application.Quit
 示例2:
  Application.DisplayAlerts= False
  Workbooks.Add
  Application.Quit

OnKey 方法
 当按特定键或特定的组合键时运行指定的过程。
 语法:OnKey(Key,Procedure)
  Key 必选 String 表示要按的键的字符串。
  Procedure 可选,表示要运行的过程名称的字符串。
   如果
Procedure 为空文本(""),则按 Key 时不发生任何操作。
    该格式的
OnKey 将更改指定键在 Microsoft Excel 中产生的正常结果。
   如果省略
Procedure 参数,则 Key 恢复为 Microsoft Excel 中的正常结果,
    同时清除先前使用
OnKey 方法所做的特殊键击设置。
 说明:
  Key 参数可指定任何与 AltCtrl Shift 组合使用的键,还可以指定这些键的任何组合。
  每一个键可由一个或多个字符表示,比如
"a" 表示字符 a"{ENTER}" 表示 Enter
  若要指定按对应的键(例如Enter Tab)时的非显示字符,请使用下表所列出的代码。
   Backspace {BACKSPACE} {BS}
   Break {BREAK}
   Caps Lock {CAPSLOCK}
   Clear {CLEAR}
   Delete Del {DELETE} {DEL}
   向下键 {DOWN}
   End {END}
   Enter(数字小键盘) {ENTER}
   Enter ~(波形符)
   Esc {ESCAPE} {ESC}
   Help {HELP}
   Home {HOME}
   Ins {INSERT}
   向左键 {LEFT}
   Num Lock {NUMLOCK}
   PageDown {PGDN}
   PageUp {PGUP}
   Return {RETURN}
   向右键 {RIGHT}
   Scroll Lock {SCROLLLOCK}
   Tab {TAB}
   向上键 {UP}
   F1 F15 {F1} {F15}
  还可指定与 Shift / Ctrl / Alt 组合使用的键。
  若要指定与其他键组合使用的键,可在键代码之前添加相就对应的符号:
    Shift  +(加号)
    Ctrl   ^(插入符号)
    Alt   %(百分号)
  若为特定字符指定处理过程(如 +^% 等等),可将此字符用圆括号括起。

  当需要为特定的过程指定快捷键时,可以用这个方法;
  当需要屏蔽Excel中某些快捷键时,也可以用这个方法;
 示例:
  Sub noCtrlCVX()
   Application.OnKey "^c", ""
   'Procedure 为空文本 ("")
   '则在Excel中按Ctrl+c时不发生任何操作(在VBE中还是有效的)
   Application.OnKey "^v", "mysub"
   'Excel中按Ctrl+v时,执行mysub过程
   Application.OnKey "^x", "mysub"
   'Excel中按Ctrl+x时,执行mysub过程
  End Sub

  Sub mysub()
   MsgBox "禁止复制,剪切快捷键"
  End Sub


  Sub CtrlCVX()
   '恢复Ctrl+c,Ctrl+v,Ctrl+x三个快捷键在Excel中原有的功能
   Application.OnKey "^c"
   Application.OnKey "^v"
   Application.OnKey "^x"
  End Sub

  注意一点,以上代码要求放入一个标准模块中,方可正常运行。

OnTime 方法
 安排一个过程在将来的特定时间运行。
 (既可以是具体指定的某个时间,也可以是指定的一段时间之后)。
 语法:
  OnTime(EarliestTime, Procedure, LatestTime,Schedule)
   EarliestTime 必选,希望此过程运行的时间。
   Procedure 必选,要运行的过程名。
   LatestTime 可选,过程开始运行的最晚时间。
    例如,如果 LatestTime 参数设置为 EarliestTime + 30,且当到达 EarliestTime 时间时,
    由于其他过程处于运行状态而导致 Microsoft Excel 不能处于“就绪”、“复制”、“剪切”或“查找”模式,
    则
将等待 30 秒让第一个过程先完成。
    如果
Microsoft Excel 不能在 30 秒内回到“就绪”模式,则不运行此过程。
    如果省略该参数,Microsoft Excel 将一直等待到可以运行该过程为止。
   Schedule 可选, 如果为 True,则预定一个新的OnTime 过程。
    如果为 False,则清除先前设置的过程。默认值为 True
 说明:
  使用 Now + TimeValue(time) 可安排经过一段时间(从现在开始计时)之后运行某个过程。
  使用
TimeValue(time) 可安排某个过程只在指定的时间运行。
 示例:
   Option Explicit
   Dim t As Double
   Sub test()
    t= Now + TimeValue("00:00:10")
    Application.OnTime t, "mysub"
    '在当前时间延后10秒运行mysub过程
    '没有指定最晚运行的时间,则会一直等待,直到运行为止。
   End Sub

   Sub noOnTime()
    On Error Resume Next
    Application.OnTime t, "mysub", , False
    '取消之前安排的过程
    '要求时间,过程名都要一一对应,最后一个参数为False
    '只要有时间和过程名参数有一个不对,就会产生错误
    '1.过程名要与Ontime方法时指定的过程名相同
    '2.时间要与Ontime方法时指定的时间相同,
    '并且该时间内的过程并没有被执行
   End Sub

   Sub mysub()
    Application.StatusBar = "计划运行时间:" &Format(t, "hh:mm:ss")
    '如果过程需要反复的执行,可以在运行过程结束前再次安排
    t= Now + TimeValue("00:00:10")
    Application.OnTime t, "mysub"
   End Sub

 注意一点,以上代码要求放入一个标准模块中,方可正常运行。

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-6-18 13:41 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 08:30 , Processed in 0.111446 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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