Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel宏不';无法正确更新_Vba_Excel - Fatal编程技术网

Vba Excel宏不';无法正确更新

Vba Excel宏不';无法正确更新,vba,excel,Vba,Excel,我为excel创建了宏,但似乎在某个地方我做错了什么 我想从URL获取图像,然后将其更新到1秒(或多或少) 当我运行宏时,它什么也不做,只有当我按f5时,它的更新速度与我按f5时一样快,而且在不到1秒(“00:00:01”)的时间内更新的值是多少,当我尝试(“00:00:0.5”)时,它会出现“运行时错误13”“类型不匹配” 非常感谢您的帮助。如果您想重复宏,必须将其放入do…until循环中。唯一的问题是,你不能一直运行宏。必须有办法阻止它。do…until循环将对此有所帮助,但您必须从循环

我为excel创建了宏,但似乎在某个地方我做错了什么

我想从URL获取图像,然后将其更新到1秒(或多或少)
当我运行宏时,它什么也不做,只有当我按f5时,它的更新速度与我按f5时一样快,而且在不到1秒(“00:00:01”)的时间内更新的值是多少,当我尝试(“00:00:0.5”)时,它会出现“运行时错误13”“类型不匹配”
非常感谢您的帮助。

如果您想重复宏,必须将其放入do…until循环中。唯一的问题是,你不能一直运行宏。必须有办法阻止它。do…until循环将对此有所帮助,但您必须从循环中找到一个合理的出口。你能给我一点关于你最终想要做什么的背景吗


此外,听起来您希望宏的运行由除按F5之外的其他操作触发。您能解释一下什么时候开始吗?

在Excel中,您可以使用VBA触发代码,在特定的时间间隔内更新工作表。下面的代码显示了每次用户激活工作表时如何激活计时器。每当计时器触发时(此处间隔1秒),此代码将用当前时间更新ActiveSheet中的单元格A1

要进一步定制,您需要向OnTimerMacro添加代码,以便更新图片或其他您经常执行的任务。 (这是哈特穆特·吉尔克关于该主题的文章的道具。)


据我所知,Excel宏总是在VBA中。是的,它是vbasic,我已经修改了我的拼写Kinopkio:事实上,在Excel中还有其他方法来执行宏(它们不再是内置的)。由于最初的标签上有“VC”(Tim现在已经更正了),我认为最好澄清一下。嗨,宏根本不会自我更新。我在这里试图做的是获取网站图表的图像,我不介意它是如何触发的,我可以在需要时手动运行宏,我的问题是,我无法让它更新我的工作表,其中包含中的图像,我不介意通过关闭整个工作表来停止它。这是我用来让它在运行工作表单元格时更新工作表的代码(1)。Value=Now nextTime=Now+TimeValue(“00:00:01”)但是……….没有luckit只在我按f5时更新图像,只要我按f5,我就想自动运行更新(在任何时间间隔内,我想这是最简单的部分)
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
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