乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 想让<em>excel</em>自打开起一直(每秒)不断刷新,用vba怎么写代...

想让<em>excel</em>自打开起一直(每秒)不断刷新,用vba怎么写代...

作者:乔山办公网日期:

返回目录:excel表格制作


一般网页上的数据都可以通过VBA进行抓取,应用得好,可以实现对很很多资料的动态监测。zd
  涨幅就是指目前这只股票的上涨幅度。
  涨幅的计算公式:涨幅=(现价-上一个交易日收盘价)/上一个交易日收盘价*100%
  例如:某只股票价格上一个交易日收盘价100,次日现价为110.01,就是股价涨幅为(110.01-100 )/100*100%=10.01%.一般对于股票来说 就是涨停了!如果涨幅为0则表示今天没涨没跌,价格和前一个交易日持平。如果涨幅为负则称为跌幅。
  比如:一支股票的涨幅是:10%、-5%等 。

ThisWorkBook 里面写:

Private Sub Workbook_Open()
freshtime
End Sub

然后新建模块里面写:

Sub freshtime()
Dim NewTime As Date
NewTime = Now + TimeValue("00:00:01")
Calculate
Application.OnTime NewTime, "freshtime"
End Sub

然后保存并重新打开表格,数据每秒自动刷新

如果要不间断一直刷新,把 + TimeValue("00:00:01")去掉,但是会非常卡,无法操作。
原创,Excel 2016 亲测可行。
请参如下
Private Sub Worksheet_Activate()
Dim myPivot As PivotTable
For Each myPivot In Me.PivotTables
myPivot.RefreshTable
Next
Set myPivot = Nothing
End Sub

我测试了下发现是鼠标放上去悬停才能触发刷新数据的动作。。。

sheet1里写:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

宏2

End Sub

模块1里写:

Sub 宏2()

'

' 宏2 宏

ActiveWorkbook.RefreshAll

If Sheet1.[G1] <> "停止刷新" Then Application.OnTime (Now + TimeSerial(0, 0, 2)), "宏2"

End Sub

亲测OK。

TimeSerial(0, 0, 2) 里面的2就是每2秒刷新一次,可以改成你想要的数值

这个是我录制宏,再稍微修改下,几分钟完成的。

相关阅读

关键词不能为空
极力推荐
  • 如何用<em>vb</em>语句删除<em>excel</em>中的多列

  • 如果您用的是Excel2007以上的版本,可以试试这个方法:将工作簿另存为一个普通的不开启宏的工作簿,然后直接关闭此工作簿。再次打开这个另存的工作簿,会发现所有的VBA代码都消失

ppt怎么做_excel表格制作_office365_word文档_365办公网