Excel 宏根据用户输入时间自动刷新工作簿
Posted
技术标签:
【中文标题】Excel 宏根据用户输入时间自动刷新工作簿【英文标题】:Excel Macro auto-refresh workbook based on user input time 【发布时间】:2015-10-28 21:12:27 【问题描述】:我在我的工作簿中使用了很多 WEBSERVICE 调用,这些调用是无连接的。因此,定期刷新值的唯一方法是使用宏。要在工作簿打开时以及之后每 30 秒自动执行此操作,以下方法效果很好:
Dim TimeToRun
Sub auto_open()
Sheets("DataInput").Select
Sheets("DataInput").Range("A1").Activate
Application.CalculateFull
Call ScheduleWorkbookRefresh
End Sub
Sub ScheduleWorkbookRefresh()
TimeToRun = Now + TimeValue("00:00:30")
Application.OnTime TimeToRun, "WorkbookRefresh"
End Sub
Sub WorkbookRefresh()
Application.CalculateFull
Call ScheduleWorkbookRefresh
End Sub
Sub auto_close()
Application.OnTime TimeToRun, "WorkbookRefresh", , False
End Sub
像往常一样,用户声称 30 秒的刷新间隔介于太短和太长之间。所以,这个想法是让用户在单元格 B9 中填写他们想要的间隔。但是,似乎没有一种可接受的方式将单元格编号(或变量)放入 TimeValue 函数中。
关于如何修改宏以允许用户选择他们自己的刷新间隔,除了使宏可供用户编辑(类似于将上膛的枪、安全装置交给一群黑猩猩)之外,我有什么想法吗?
【问题讨论】:
您是否尝试过TimeToRun = Now + TimeValue("00:00:" & Sheets("DataInput").Range("A1").Value)
在单元格 A1 中用户可以输入秒数(不是字母或公式)
谢谢,我尝试了很多非常相似的东西,但不完全一样。你的工作非常好,虽然我不需要指定工作表,因为我已经激活了它。在我看来,它不必被激活,所以我会再修补一些。基础知识现在可以工作了,多亏了你,Paul!
我很高兴它有帮助。我提供了它作为答案,以便可以关闭问题
【参考方案1】:
使用TimeToRun = Now + TimeValue("00:00:" & Sheets("DataInput").Range("A1").Value)
【讨论】:
以上是关于Excel 宏根据用户输入时间自动刷新工作簿的主要内容,如果未能解决你的问题,请参考以下文章
打开用户指定的 Excel 工作簿并将数据范围复制到另一个工作簿