工作簿,保存,关闭,重新打开(含时间值),重复
宏以分配给" Closeme"的按钮运行.它曾经为我的需求运行,但不再是(因为我尝试在另一个工作簿中使用此代码而没有成功).现在,它可以节省,关闭,等待10秒重新打开,然后立即关闭. Sub CloseMe() Application.OnTime Now + TimeValue("00:00:10"), "OpenMe" ThisWorkbook.Close True End Sub Sub OpenMe() Application.OnTime Now + TimeValue("00:10:00"), "OpenMe" ThisWorkbook.Close True End Sub 我需要代码来保存,关闭,等待10秒重新打开,保持10分钟(收集实时数据),然后重复此过程(直到我手动中断它以停止).谢谢 解决方案 代码执行您要求它做的事情:a. CloseMe时间表OpenMe从现在开始10秒,然后关闭工作簿,然后关闭b. Excel重新打开了工作簿并调用OpenM
4 2023-11-16
编程技术问答社区
如何通过WorkBook.close语句启动即时活动?
看来,如果Ontime事件是由程序化mybook.close语句注册的,那么Ontime永远不会运行. 此代码正常: Sub TestOnTime() Application.OnTime Now + TimeValue("00:00:05"), "MySub" End Sub Sub MySub() Debug.Print "hello" End Sub 运行TestOntime. MySub将按照预期执行. 此代码运行正常: thisworkbook: Dim WithEvents oApp As Application Private Sub Workbook_Open() Set oApp = Application End Sub Private Sub oApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boo
4 2023-11-16
编程技术问答社区
应用程序.ontime没有取消或在后台运行
我正在使用application.intime命令在不活动之后自动关闭电子表格(10分钟). 以下代码似乎一般都起作用,但是,如果您自己手动关闭工作表,则该工作簿似乎仍然在后台活动,而在最后指定的"末日"中,工作簿将自身打开,以便可以关闭自己. 这在VBA代码窗口中也很明显. Sub RunTime() Static EndTime If Not EndTime = "" Then ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , False EndTime = Now + TimeValue("00:10:00") ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , True End Sub Sub CloseWB() Application.DisplayAlerts = False With ThisWorkbook
6 2023-11-16
编程技术问答社区
Application.OnTime不能与userform一起工作
我有一个代码的问题: Private Sub cyclic() Static i As Integer i = i + 1 Cells(i, 11) = i Open source For Append As #1 Write #1, Cells(i, 11) Close #1 Application.Wait (Now + TimeValue("0:00:01")) Open source For Input As #1 Do While Not EOF(1) Input #1, x1 Loop Cells(i, 1) = x1 Close #1 Application.OnTime Now + TimeValue("00:00:03"), "cyclic" End Sub 这几乎是这样的. 它可以从工作表Alt+F8宏的级别完美地工作,但是当我想仅通过单击命令button来利用它时,就不会在4秒的间隔内进行期刊,但只能进行一个循环.如果我想用我的数字填充更多的单
8 2023-11-15
编程技术问答社区
如何在excel VBA中检查或取消MULTIPLE pending application.ontime事件?
我正在使用application.intime事件从单元格中提取时间字段,并安排当时的子例程进行运行.我的application.intime事件在Workbook_beforesave事件上运行.因此,如果用户(更改所需的时间 +保存工作簿)多次,则创建多个应用程序.从理论上讲,我可以使用一个唯一的时间变量跟踪每个事件..但是有没有办法检查/解析/取消待处理事件? Private Sub Workbook_BeforeSave SendTime = Sheets("Email").Range("B9") Application.OnTime SendTime, "SendEmail" End Sub Private Sub Workbook_BeforeClose Application.OnTime SendTime, "SendEmail", , False End Sub 所以如果我: 将B9更改为12:01,保存工作簿 将B9更改为12:
6 2023-11-15
编程技术问答社区
应用程序.OnTime在不应该运行的时候运行。
我已经编写了一个脚本,该脚本生成了莲花笔记电子邮件以在某些时间间隔发布数据.该脚本是Macro2 -Macro5. Macro 2 -Macro 5都是相同的,但是我已经在不同的潜艇下重复了脚本来尝试诊断我的问题.我遇到的问题有时是在晚上8点,将产生4封电子邮件.一封电子邮件将由Macro 5正确触发,但是Macro2触发了其他电子邮件. P> 我正在使用以下来调用以下内容: 在"此工作簿"中,我有: Private Sub Workbook_Open() Call DailyAM Call DailyPM End Sub 在模块1中: Sub DailyAM() Application.OnTime TimeValue("06:00:00"), "Macro2" Application.OnTime TimeValue("10:00:00"), "DailyAM" End Sub Sub DailyPM() Application.OnTime Tim
2 2023-11-15
编程技术问答社区
VBA 准时取消调度
我写了一个宏,每次工作簿首次打开时,每个工作日都在每次工作日运行. 关闭工作簿时,下次宏观计划运行时会试图打开自己.我试图将调度程序变成false并遇到错误.下面的代码. 有人有任何想法为什么这不起作用吗? Private Sub Workbook_Open() Application.OnTime TimeValue("15:30:00"), "MacroTimeTest" End Sub public dtime as date Sub MacroTimeTest() dtime = (Format(Application.Evaluate("workday(today(), 1)"), "DD/MM/YY") & " " & TimeValue("15:30:00")) 'other code has been deleted doesn't affect dtime variable End Sub Private Sub Workboo
10 2023-11-15
编程技术问答社区
如何使用Application.OnTime在每天设定的时间调用一个宏,而不需要关闭工作簿
我写了一个使用应用程序的宏.如果我手动执行宏,则可以使用.我正在尝试自动化此过程,所以我不必编写应用程序.启动宏开放.我无法使用调度程序. 因为我无法使用Windows调度程序,所以我将保持工作簿打开,计时器应刷新我的数据,然后每天在某个时间调用"我的宏". 我在哪里放置此代码,以及如何设置自动计时器? 解决方案 您可以创建一种复发过程.看起来如下: Sub Call_At_3_30() 'first call appropriate procedure Call myProcedure 'next, set new calling time Application.OnTime TimeValue("3:30:00"), "Call_At_3_30" End Sub 在某个地方,您将保留您的主要过程,这种情况: Sub myProcedure 'your code here End Sub 在这种情况下,
2 2023-11-15
编程技术问答社区
Application.OnTime的多个变量参数
我正在研究Excel 2010的数据采集前端. 我无法弄清楚将多个局部变量参数传递给Application.OnTime的语法. http://markrowlowlinson.co.uk/articles.php?id=10 为单个变量作为参数提供了一个很好的示例,但是我不清楚如何将其推断为多个变量的解释. 传递多个局部变量参数时,是否有人对"和'字符的正确嵌套有简洁的解释? 编辑:代码示例就是这样:Application.OnTime Now + TimeSerial(0, 0, 5), "'runScheduledReport """ & iArg1 & "","" & iArg2 & "" "" & iArg3 & "" ""'". 我知道我们正在使用双重报价作为字符串中的逃生字符,但无法真正弄清楚通过的字符串顺序. 解决方案 您必须考虑以下约束: 您要调用的宏必须驻留在模块中.当您想从另一个工作簿中调用它时,必须公开. 您不能像使用函数或带有参
4 2023-11-15
编程技术问答社区
开机时间少于1秒而不出现无响应的情况
我有一个用户形式,每100ms每100ms运行脚本.该脚本处理用户形式上的图像,并用于对它们进行动画操作,而表单继续接收用户输入(鼠标点击和按键按下).这会一直持续到关闭用户形式为止.虽然application.intime似乎效果最好,但它仅在1秒或多个时间值上始终运行. 当我使用 之类的东西时 Sub StartTimer() Application.OnTime now + (TimeValue("00:00:01") / 10), "Timer" End Sub Private Sub Timer() TheUserForm.ScreenUpdate Application.OnTime now + (TimeValue("00:00:01") / 10), "Timer" End Sub 并在用户形式中调用startTimer,Excel变得非常不响应,"计时器"每秒被称为多次. 使用睡眠功能会导致程序也没有响应,尽管脚本是用正确的
10 2023-11-15
编程技术问答社区
绕过vba函数中的最大字符串大小?
在VBA功能中,您可以在字符串中使用的最大字符数为255. 我正在尝试运行此功能 Var1= 1 Var2= 2 . . . Var256 =256 RunMacros= "'Tims_pet_Robot """ & Var1 & """ , """ & Var2 & """ , """ ... """ & Var256 """ '" Runat=TimeValue("15:00:00") Application.OnTime EarliestTime:=Runat, Procedure:=RunMacros & RunMacros2 ', schedule:=True 它在特定时间运行一个过程,并通过一堆变量.但是字符串太长. 更新: 遗憾的是,我确定这不是手表窗口. 另外,这并不是我要处理的字符串的最大大小.这是最大大小 VBA功能中的字符串. 例如,此功能有效. Sub test() Dim RunAt As Date Dim RunWhat As
4 2023-11-15
编程技术问答社区
VBA:如何才能真正停止Application.onTime()?
我已经阅读了一些问题/线程(例如 this 和我正在使用它来每次 x 秒.我知道,当我调用OnTime()方法时,我需要将其传递给该事件的相同时间值. 我还试图引入多个命令(例如,试图引起错误)以停止执行,但它仍然不起作用!该程序只是继续运行...这就是我的代码外观: 在工作表代码中我有: Public TimerActive As Boolean Public tick As String Public idx As Long Public counter As Long Public Sub UpdateOff_Click() TimerActive = False tick = "Off" counter = 1 idx = 1 Call StopTimer(idx, counter, tick, TimerActive) End ' force quit?? End Sub Public Sub
40 2023-10-21
编程技术问答社区
时间上的时间戳值翻倍了
当您启动RecordData()sub(来自OpenMe()sub)时,仅一旦它完美地工作.每个时间邮票日志都是连续的,没有双打.当工作簿重新打开时(由于OpenMe()/Close()subs)是在创建重复的时间邮票日志时.我可以重新安排ONTINE,以便安排下一个会话的双倍吗?或分开两个闭合的时间,所以他们的独立性? Dim NextTime As Double Sub RecordData() Dim Interval As Double Dim cel As Range, Capture As Range Application.StatusBar = "Recording Started" Set Capture = Worksheets("Dashboard").Range("C5:K5") 'Capture this row of data With Worksheets("Journal") 'Record the data
18 2023-10-21
编程技术问答社区
无法运行宏
我在下面的宏中遇到了一个问题 Sub RefreshAction() Range("b7").Select Application.Run "RefreshCurrentSelection" Application.OnTime (Now() + TimeValue("00:00:05")), "thisworkbook.Action" End Sub 第一次运行宏时,单元格刷新,但我立即在 之后立即收到错误消息 消息:无法运行宏" C \ desktop \ xyz.xlsm'!thisworkbook.action'.本工作簿中可能不可用宏或所有宏可能被禁用. . 我已经经过"信任中心 - >信任中心设置 - >宏观设置 - >启用所有宏,并且不起作用. 也单击"信任访问VBA项目对象模型"框. 解决方案 有关更多详细信息,请参见绝对参考: 第一期,您需要存储您在OnTime方法中输入的时间才能停止它. (在这里,我将公共时
12 2022-09-14
编程技术问答社区
Excel VBA在不到1秒的时间内不会出现无响应的情况
我有一个用户表,每100ms运行一个脚本。该脚本处理用户窗体上的图像,并用于对它们进行动画处理,而窗体继续接收用户输入(鼠标点击和按键)。直到用户窗体关闭为止。虽然Application.OnTime似乎工作最好,但它只能按时间值1秒或更长时间运行。 当我使用像 Sub StartTimer() Application.OnTime now +(TimeValue(“00:00:01”)/ 10),“Timer” End Sub Private Sub Timer() TheUserForm.ScreenUpdate Application.OnTime now +(TimeValue(“00:00:01”)/ 10),“Timer” End Sub 并在用户窗体中调用StartTimer,Excel变得非常无响应,“Timer”被称为每秒更多的次数比它应该。 使用睡眠功能会导致程序变得无响应,尽管脚本以适当的时间间隔运行。
1292 2022-07-19
编程技术问答社区