Vba 如何定期运行excel宏并将更新的数据粘贴到新列中

Vba 如何定期运行excel宏并将更新的数据粘贴到新列中,vba,excel,Vba,Excel,我目前有一个API输入我的excel,它从URL下载股票价格。列A2:A194是公司名称,B2:B194是对应的股票价格 我想创建一个宏,它每5分钟运行一次,获取新的价格并粘贴到相邻的列中 这就是我迄今为止所能做到的: [Sub GetPrice() ' ' GetPrice Macro ' ' Keyboard Shortcut: Ctrl+q ' ActiveWorkbook.RefreshAll ActiveCell.Offset(0

我目前有一个
API
输入我的
excel
,它从
URL
下载股票价格。列
A2:A194
是公司名称,
B2:B194
是对应的股票价格

我想创建一个
,它每5分钟运行一次,获取新的价格并粘贴到相邻的列中

这就是我迄今为止所能做到的:

[Sub GetPrice()
    '
    ' GetPrice Macro
    '
    ' Keyboard Shortcut: Ctrl+q
    '
    ActiveWorkbook.RefreshAll
    ActiveCell.Offset(0, -1).Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    ActiveCell.Offset(0, 1).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveCell.Offset(-1, 0).Range("A1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=NOW()"
    ActiveCell.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveCell.Offset(1, 0).Range("A1").Select
    Application.CutCopyMode = False
    ActiveCell.Offset(0, 1).Range("A1").Select

    Application.OnTime Now + TimeValue("00:05:00"), "GetPrice"

    End Sub]
此宏从上一列中提取数据,而不是从
B2:B194
中提取数据。我如何更改相同的设置


例如:在1小时结束时,我希望14列有数据:原始的2+12列,每5分钟获取一次价格

与上一篇专栏文章的内容相同。这是因为您使用的是偏移量,而不是声明要专门使用哪些列。如果你知道会是:

Sheet1.范围(“B2:B194”)

然后只需编辑定义该零件的宏


宏是了解代码中发生了什么的一个很好的方法,但是我总是编辑它们以提高效率或者更容易阅读。主要是因为很多宏都依赖于用户不断单击和激活单元格,这对于在某处插入值或执行函数来说是不必要的。你也可以很快看到背景中发生的一切,看起来很可疑

因此,要每5分钟执行一次脚本,请检查