通过Excel中的下拉更改从Web查询获取数据

时间:2018-08-14 12:15:15

标签: excel vba excel-vba

我有一些特殊要求。那就是我有一组值,这些值将出现在Excel单元格的下拉列表中。更改值时,它将击中服务器并根据excel中选择的下拉菜单获取数据。

最后,我完成了一些简单的步骤。请在下面找到它。

步骤1:-创建下拉列表

转到数据->数据验证 enter image description here

现在,您已经在F2单元格中创建了一个下拉列表,如下所示:

enter image description here

现在更改时,我们必须创建一个宏,该宏将从服务器获取数据:

第2步:-

enter image description here

现在,您必须单击查看代码,这将打开一个代码窗口。在那里,您必须粘贴以下代码。

Private Sub Worksheet_Change(ByVal Target As Range)

'MsgBox "You just changed " & Target.Address
  If Target.Address = "$F$2" Then

   With ActiveSheet.QueryTables.Add(Connection:= _
      "URL;https://www.google.com/", Destination:= _
      Range("A1"))
      .Name = "MR07"
      .FieldNames = True
      .RowNumbers = False
      .FillAdjacentFormulas = False
      .PreserveFormatting = True
      .RefreshOnFileOpen = False
      .BackgroundQuery = True
      .RefreshStyle = xlInsertDeleteCells
      .SavePassword = False
      .SaveData = True
      .AdjustColumnWidth = True
      .RefreshPeriod = 0
      .WebSelectionType = xlEntirePage
      .WebFormatting = xlWebFormattingNone
      .WebPreFormattedTextToColumns = True
      .WebConsecutiveDelimitersAsOne = True
      .WebSingleBlockTextImport = False
      .WebDisableDateRecognition = True
      .WebDisableRedirections = True
      .Refresh BackgroundQuery:=False
      End With
  End If
End Sub

在上面的代码中,您可以替换自己的URL而不是https://www.google.com/

A1是输出的起始行,来自服务器。 $F$2正在验证来自下拉列表的更改。如果您没有为所有单元格更改都设置此条件,它将调用此函数,这是意外的。

0 个答案:

没有答案