1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 有VBA的excel文件关闭后自动打开, 怎么修改代码 ?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-3-25 20:55 | 显示全部楼层 |阅读模式
本帖最后由 kenese 于 2025-3-26 09:12 编辑


以下这段VBA 代码的excel, 当文件关闭后, 过了一会儿, excel 文件还会自己打开, 如何修改这段代码, 避免当文件关闭后自动在打开 ?




Public RunWhen As String
'每1200秒执行一次
Public Const cRunIntervalSeconds = 1200
Public Const cRunWhat = "status_check"
Sub StartTimer()
RunWhen = Application.WorksheetFunction.Text(cRunIntervalSeconds / 86400, "[hh]:mm:ss")
Application.OnTime EarliestTime:=Now() + TimeValue(RunWhen), Procedure:=cRunWhat, Schedule:=True
End Sub
Function GetPingResult(Host)
   Dim objPing As Object
   Dim objStatus As Object
   Dim strResult As String
   Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
       ExecQuery("Select * from Win32_PingStatus Where Address = '" & Host & "'")
   For Each objStatus In objPing
      Select Case objStatus.StatusCode
         Case 0: strResult = "Connected"
         Case 11001: strResult = "Buffer too small"
         Case 11002: strResult = "Destination net unreachable"
         Case 11003: strResult = "Destination host unreachable"
         Case 11004: strResult = "Destination protocol unreachable"
         Case 11005: strResult = "Destination port unreachable"
         Case 11006: strResult = "No resources"
         Case 11007: strResult = "Bad option"
         Case 11008: strResult = "Hardware error"
         Case 11009: strResult = "Packet too big"
         Case 11010: strResult = "Request timed out"
         Case 11011: strResult = "Bad request"
         Case 11012: strResult = "Bad route"
         Case 11013: strResult = "Time-To-Live (TTL) expired transit"
         Case 11014: strResult = "Time-To-Live (TTL) expired reassembly"
         Case 11015: strResult = "Parameter problem"
         Case 11016: strResult = "Source quench"
         Case 11017: strResult = "Option too big"
         Case 11018: strResult = "Bad destination"
         Case 11032: strResult = "Negotiating IPSEC"
         Case 11050: strResult = "General failure"
         Case Else: strResult = "Unknown host"
      End Select
      If strResult = "Connected" Then
        GetPingResult = "通"
      Else
        GetPingResult = "不通"
      End If
   Next
   Set objPing = Nothing
End Function

Sub status_check()
Dim arData As Variant
arData = Sheet8.Range("A1").CurrentRegion
For i = 2 To UBound(arData)
    arData(i, 3) = GetPingResult(arData(i, 2))
    arData(i, 4) = Now()
    DoEvents
Next
Sheet8.Range("A1").Resize(UBound(arData), UBound(arData, 2)) = arData
Call StartTimer
End Sub



test.zip

16.85 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2025-3-26 08:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求助要上附件,没有附件别人无法调试的。

TA的精华主题

TA的得分主题

发表于 2025-3-26 08:32 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lss001 于 2025-3-27 21:32 编辑

'建议增加工作薄关闭事件

TA的精华主题

TA的得分主题

发表于 2025-3-26 08:55 | 显示全部楼层
关闭工作簿时,要清除OnTime过程。
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     If dSj = 0 Then Exit Sub
  3.     Application.OnTime EarliestTime:=dSj, Procedure:=cRunWhat, Schedule:=False
  4. End Sub
复制代码


kenese_test.rar

15 KB, 下载次数: 7

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-26 09:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-26 11:24 | 显示全部楼层
用ontime的人真多, 写定时任务,一定要预先写好停止任务的代码,预设好在什么情况就停止定时任务

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-27 11:19 | 显示全部楼层
山菊花 发表于 2025-3-26 08:55
关闭工作簿时,要清除OnTime过程。

老师,  加在最后面吗? VBA 不会

TA的精华主题

TA的得分主题

发表于 2025-3-27 11:57 | 显示全部楼层
kenese 发表于 2025-3-27 11:19
老师,  加在最后面吗? VBA 不会

加在ThisWorkbook模块中,可下载附件看一下。

评分

1

查看全部评分

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

本版积分规则

1234

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

GMT+8, 2025-3-30 12:00 , Processed in 0.034964 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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