我为excel创建了宏,但似乎某处我做错了什么,
Sub GetPicture()
PictureURL = "This is where i put the URLi want"
Set MyPict = ActiveSheet.Pictures.Insert(PictureURL)
Cells(1).Value = Now
nextTime = Now + TimeValue("00:00:01")
End Sub
当我运行宏时没有做任何事情,只有当我按f5时它按照f5的速度更新,同样更新的值小于1秒(“00:00:01”),当我尝试(“00:00:0.5”)时,它出现“运行时错误13”“类型不匹配” 任何帮助都是非常苛刻的。
答案 0 :(得分:1)
在Excel中,您可以使用VBA触发在特定时间间隔内更新工作表的代码。下面的代码显示了每次用户激活工作表时如何激活计时器。每当定时器触发时(此处间隔1秒),此代码将使用当前时间更新ActiveSheet中的单元格A1。
要进一步自定义,您可以将代码添加到 OnTimerMacro ,以便更新图片或您重复执行的任何其他任务。 (哈特穆特·吉尔克(Hartmut Gierke)就这个话题发表的帖子。)
Option Explicit
Dim Execute_TimerDrivenMacro As Boolean
Sub Start_OnTimerMacro()
Execute_TimerDrivenMacro = True
Application.OnTime Time + TimeValue("00:00:01"), ActiveSheet.Name & ".OnTimerMacro"
End Sub
Sub Stop_OnTimerMacro()
Execute_TimerDrivenMacro = False
End Sub
Public Sub OnTimerMacro()
If Execute_TimerDrivenMacro Then
' Do something e.g. put the actual time into cell A1 of the active sheet
ActiveSheet.Cells(1, 1).Value = Time
' At the end restart timer
Application.OnTime Time + TimeValue("00:00:01"), ActiveSheet.Name & ".OnTimerMacro"
End If
End Sub
Private Sub Worksheet_Activate()
'Start the timer driven method when opening the sheet
Start_OnTimerMacro
End Sub
Private Sub Worksheet_Deactivate()
'Stop the timer driven method when opening the sheet
Stop_OnTimerMacro
End Sub
答案 1 :(得分:0)
如果你想重复宏,你必须将它放在do ... until循环中。唯一的问题是,你无法真正拥有宏运行。必须有办法阻止它。 do ... until循环将有助于此,但你必须从循环中得出一个合理的退出。你能否提供一些关于你最终想要做什么的背景知识?
另外,听起来你想要通过按F5以外的其他东西来触发宏的运行。你能解释一下你想要什么时候开始吗?