我在工作簿中使用了很多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>
答案 0 :(得分:1)
使用TimeToRun = Now + TimeValue("00:00:" & Sheets("DataInput").Range("A1").Value)