Excel宏自动刷新工作簿基于用户输入时间

时间:2015-08-05 22:02:28

标签: excel-vba refresh vba excel

我在工作簿中使用了很多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函数似乎不是一种可接受的方式。

关于如何修改宏以允许用户选择自己的刷新间隔的任何想法,除了使宏可供用户编辑(类似于将装载的枪,安全关闭,交给黑猩猩队伍)? / p>

1 个答案:

答案 0 :(得分:1)

使用TimeToRun = Now + TimeValue("00:00:" & Sheets("DataInput").Range("A1").Value)