我有一个名为“pulldata”的模块,用于从网络中提取数据。
我希望它在Sheet1上运行,并在Sheet2中的单元格F1值发生变化时在B2上显示数据。我试过在Sheet1上尝试使用工作表更改和工作表计算,但它仍然无法运行。任何帮助表示赞赏。谢谢。
Sub pulldata()
'
' pulldata Macro
'
'
sTicker = ThisWorkbook.Worksheets(1).Range("A1").Value
If sTicker = "" Then
MsgBox "No value to look up"
Exit Sub
End If
With Worksheets(1).QueryTables.Add(Connection:= _
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" _
, Destination:=Range("B2"))
.Name = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "6"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
答案 0 :(得分:1)
如果您想在" Sheet2"中观看更改,则需要在" Sheet2"中进行Worksheet_Change
事件,例如
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F1")) Is Nothing Then
Sheet1.pulldata
End If
End Sub
但是,我建议您将pulldata
例程移动到标准代码模块中。在此之前,您应该将Destination:=Range("B2")
更改为Destination:=Worksheets(1).Range("B2")
,以确保范围是完全限定的,以便它引用sheet1。