所以我遇到了一个问题,我创建了一个循环来查找工作表中“标准偏差”的位置,并将数据3个单元格拉到右侧。问题是这应该在加载查询表之后提取数据。我的代码不起作用,因为它在Querytable加载之前运行。
Sub StdB5()
Dim URL As String
Dim ws As Worksheet
Dim qt As QueryTable
Dim mep As Worksheet
Dim Symbol As String
Set mep = Worksheets("Managed Equity Portfolios")
Set ws = Worksheets("Hidden Sheet 3")
Sheets("Hidden Sheet 3").Cells.ClearContents
Sheets("Hidden Sheet 3").Visible = True
Symbol = Symbol & mep.Range("B5").Value
URL = "https://www.google.com/finance?q=MUTF:" + Symbol
Set qt = ws.QueryTables.Add( _
Connection:="URL;" & URL, _
Destination:=ws.Range("A1"))
qt.Refresh
Dim stdRange As Range
Dim cel As Range
Dim stdcell As Range 'std on MEP
Set stdcell = mep.Cells.Range("H5") 'std on MEP
Set stdRange = ws.Range("A45:A50")
For Each cel In stdRange
If cel.Value = ("Standard deviation") Then
stdcell.Value = cel.Offset(0, 3).Value
End If
Next cel
有没有办法让它等到查询表在运行之前加载?在表加载后不必再次物理运行宏?
编辑:我需要这样做的原因是因为有时在QT运行之后,标准偏差将在例如单元格A45而不是A47中。这使得它不能只是让我想要填充的单元格='Sheet2'A45' 编辑2:添加完整代码
答案 0 :(得分:0)
我理解代码会等待一段时间然后运行如果它是正确的你可以使用Application.Wait(Now + TimeValue(" 0:00:05"))。这将等待5秒钟,然后执行下一行。