Tag: 定时器

将START和STOPbutton添加到现有的代码

在列A中input一个值。要开始,请双击列A中的值。要停止,请双击任何空白单元格。 停止监视在B2单元中运行。 Public stopMe As Boolean Public resetMe As Boolean Public myVal As Variant Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then If Target.Value = myVal And Target.Value <> "" Then 'Changed Dim startTime, finishTime, totalTime, timeRow startTime = Timer stopMe = False resetMe = False myTime = Target.Offset(, […]

调用Application.OnTime完全合格的path子?

我有一个电子表格,我实现了一个计时器,每10秒自动更新一个公式。 一切都很好,直到我打开另一个电子表格。 我的假设是,它仍然试图在错误的工作表上运行Timer() 。 所以,我试图切换到绝对的电话。 这是我的完整代码: Dim TimerActive As Boolean Sub StartTimer() Start_Timer End Sub Private Sub Start_Timer() TimerActive = True Application.OnTime Now() + TimeValue("00:00:10"), "timetrack.xlsm!Tracker.Timer" End Sub Sub Stop_Timer() TimerActive = False End Sub Sub Timer() Dim tracker As Worksheet Set tracker = Workbooks("timetrack.xlsm").Sheets("Tracker") tracker.Range("O1").Value = "Timer Stopped" 'On Error Resume Next If TimerActive […]

Excel计时器closures工作簿

不久之前,我发现(或发现)一些代码,如果用户将其打开(例如一整夜或一整天),则会在一段时间后自动closures共享工作簿。 代码运行良好,除了当它closures工作簿内驻留; 它也closures了所有的工作簿和Excel(以及没有Application.Quit)。 用户对此感到厌烦,有谁知道我怎样才能把它closures(Thisworkbook),而不是所有其他? 谢谢。 代码如下: Option Explicit ' Declarations Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Private mlngTimerID As Long ' […]

倒计时Excel VBA – 代码崩溃的Excel

有人可以提供一个洞察,为什么这崩溃了我的优秀,我似乎无法工作。 我试图学习VBA,需要一些build议。 sub timer() dim second second = 1.15740740740741e-05 'this is the amount excel counts as a second line1: application.wait "00:00:01" Range("a1").value = Range("a1").value – second if not range("D2").value = 0 then Goto line1 else Msgbox("Countdown ended") End if end sub

两个进程在VBA中

首先我应该说我在VBA上没有相关经验,但是我非常需要在excel中做一个计时器。 我设法创build了定时器的停止和开始button。 但是我有20个不同的定时器,有开始和停止button。 我想创build一个button,它将自动启动所有定时器,同时让我单独停止一个定时器。 我已经产生了以下代码来启动和停止它们。 但是,当我停止其中一个计时器时,出现以下错误:“运行时错误”1004“:object'_application的方法'onTime'失败。 两个开始和停止button的代码是: Sub startTimer27() Application.OnTime Now + TimeValue("00:00:01"), "Increment_count27" End Sub Sub Increment_count27() Range("B2").Value = Range("B2") + 1 Range("B11").Value = Range("B11") + 1 Range("B19").Value = Range("B19") + 1 Range("B25").Value = Range("B25") + 1 Range("B33").Value = Range("B33") + 1 startTimer27 End Sub Sub stopTimer27() Application.OnTime Now + TimeValue("00:00:01"), "Increment_count27", Schedule:=False End […]

excel application.ontime每小时运行一小时,而不pipe计时器何时启动

我有一个VBA子需要运行在每个小时的变化。 所以在7点,8点,等等。现在我可以每60分钟运行一次,但是为了在一小时内运行,操作员必须在一小时内启动计时器。 我使用的代码如下: Public RunWhen As Double Public Const cRunIntervalSeconds = 3600 Public Const cRunWhat = "transfer" ———————————————————————– Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _ Schedule:=True End Sub 我一直在试图find一种方法,让这个小时运行一段时间,但是现在我看到的每一个地方都只是告诉我要做的,就是我已经完成了,而且确保我正好在一小时内开始。 例如:如果操作员直到7点10分才到达工作站,点击运行代码的button,我仍然希望它在8点和9点执行称为“传送”的子程序,依此类推。 你会如何build议我修改或添加到这个代码来得到它来完成我想要做的? 感谢您的帮助!

延迟Excel保存function

我有一个工作簿,需要保存在开始,然后每5分钟自动保存,但我需要延迟初始保存,以便当工作簿打开时等待30秒,然后保存。 这是我有的代码,但它会自动运行它: Private Sub Workbook_Open() Time = Now() + TimeValue("00:00:30") Application.OnTime Time, "WaitUntilReady" Public Sub WaitUntilReady() savefolder = "C:\Users\" & Environ$("Username") & "\Desktop\" mypath = savefolder & Format(Date, "dd-mmm-yy") If Len(Dir(mypath, vbDirectory)) = 0 Then MkDir mypath On Error Resume Next ThisWorkbook.SaveAs mypath & "\" & "Practice Monitoring Template" & " – " & Format(Time, […]

VBA计时器api内存使用情况

我正在开发一个应用程序,将工作几天,并实现一个计时器(从user32 lib),每运行500毫秒的例程。 问题是每次例程执行时,Excel应用程序所需的内存都增加了8KB。 正如我所说,我会喜欢应用程序运行几天,所以有一点,它的内存消耗太高,应用程序开始太慢了。 我已经在这个和其他地方寻找解决办法,但我没有find解决办法。 我读了关于强制GC,但在vba我不能这样做。 ¿任何人都可以给我一些build议吗? Pd:谢谢你,对我那可怜的英语感到抱歉。 编辑: 嗨,再次,我使用计时器事件与PLC通信,并采取行动。 也许0.5秒是如此短的时间,代码无法完成例程,事件正在堆栈中。 我想我可以把时间延长到1秒而不会失去performance。 这是我的代码: API声明 Private Declare Function SetTimer Lib "user32" _ (ByVal hWnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerFunc As Long) As Long Private Declare Function KillTimer Lib "user32" _ (ByVal hWnd As Long, _ ByVal […]

如何使定时器从上次停止的时间开始,而不是每次都重置

在列A中input一个值。要开始,请双击列A中的值。要停止,请双击任何空白单元格。 停止监视在单元格B2中运行 Public stopMe As Boolean Public resetMe As Boolean Public myVal As Variant Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then If Target.Value = myVal And Target.Value <> "" Then 'Changed Dim startTime, finishTime, totalTime, timeRow startTime = Timer stopMe = False resetMe = False myTime = Target.Offset(, […]

使用VBA自动填充网页表单

我正在尝试修复一个Excelmacros来自动填充一个Web窗体。 安全设置不允许表单被更快地操作,那么人们可以input信息。 我想包括一个计时器,以减慢过程每秒进入秒,但我不确定如何做到这一点。 下面是VBA: Sub Load() On Error Resume Next ActiveWorkbook.VBProject.References.AddFromFile "C:\WINDOWS\system32\MSHTML.TLB" ActiveWorkbook.VBProject.References.AddFromFile "C:\WINDOWS\system32\ieframe.dll" Dim HTMLDoc As HTMLDocument Dim oBrowser As InternetExplorer Dim oHTML_Element As IHTMLElement Dim sURL As String Dim WPid As String Dim WPpercent As Double Dim Total As Double Dim WPname As String Dim dblClock As Double Dim Percent As Double On […]