如何定期运行excelmacros,并将更新后的数据粘贴到新列中
我目前有一个API
喂到我的excel
,从URL
下载股票价格。 A2:A194
栏A2:A194
是公司名称, B2:B194
是相应的股票价格。
我想创build一个每5分钟运行一次的macro
,获取新的价格并将其粘贴到相邻的列中。
这是我迄今为止能够实现的目标:
[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]
该macros从上一列而不是B2:B194
提取数据。 我如何改变一样?
例如:在1小时结束时,我想要14列有数据:原始的2 + 12列与每5分钟取价。
沿着为什么它从前一列拉动的线。 这是因为你正在使用偏移量而不是声明你想要使用哪个列。 如果你知道这将是:
Sheets("Sheet1").Range("B2:B194")
那么只需编辑它定义该部分的macros。
这些macros是了解代码中发生的事情的好方法,但是我总是会编辑它们来提高效率或者更容易阅读。 主要是因为这么多的macros依赖于用户不断地点击和激活单元格,这对于插入某处的值或者要执行的函数来说是不必要的。 你也可以很快看到在后台发生的一切,看起来有问题。