如何从PHP网站上的表导入excel数据

时间:2016-08-23 12:16:58

标签: vba excel-vba excel

我真的不知道如何使用网页上的excel导入从该网站获取数据

网站地址: http://www.scramble.nl/military-database/usaf

例如,

serch for serial: 62-3578

在表格中给出结果:

争夺数据库 - 查询结果:

序列号:62-3578
型号:KC-135R
CN:18561 / T0629
单位:第141届ARS

是否可以使用vba excel为该类型的网站搜索数据?

在回应最近的评论时,我并不指望有人会为我编码所有内容,我以前使用过这个网站并且我知道它,但这次我在开始后就遇到了这个问题......

这是我从

开始的代码
      Sub Get_scramble_data()
  '
  ' Get_scramble_data Macro
  '

 '
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://www.scramble.nl/index.php?option=com_mildb&view=search", _
    Destination:=Range("$A$1"))
    .Name = "index.php?option=com_mildb&view=search"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlAllTables
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
     End With
  End Sub

但是下一步需要在串行字段中手动插入值,例如 62-3578 ,然后单击搜索,然后我尝试从新创建的表中的搜索结果中获取数据,并且该VBA代码是不工作,我收到消息:“这个Web查询没有返回数据”

1 个答案:

答案 0 :(得分:1)

这是一个X / Y问题。您认为可以使用QueryTables来实现此目的,但您不能。所以你正在寻找错误的解决方案。

  

我真的不知道如何使用网页上的excel导入从该网站获取数据

我不是为你编写代码,但这里是的想法,我将由你来实现代码。

  1. 这不能通过QueryTables完成,因此您需要通过CreateObject("InternetExplorer.Application")CreateObject("MSXML2.XMLHTTPRequest")个对象或类似方式自动化与网站的互动(例如, Selenium Web Driver)。
  2. 您需要了解如何处理所需元素(您将在其中输入搜索词的字段)。可用的方法因您实现上述(1)的方式而异。如果是IE,则需要使用GetElementByID(如果元素有ID)或对标记名称进行强力迭代并使用适当的逻辑来标识正确的元素。 Google VBA get element on website
  3. 您需要使用类似的逻辑来处理相应的“搜索”按钮。
  4. 在输入字段上设置句柄后,可以在字段中写入值“62-3578”。 Google VBA enter data to website
  5. 然后您自动执行按钮或表单的ClickSubmit事件。 Google VBA Click button on webpage
  6. 您需要等待使用Ready Waiting循环重新加载页面。
  7. 然后,您需要在页面上标识包含 Table 数据的元素,并相应地解析这些值,以便将它们放入工作表中。
  8. 这是基本的逐步。这完全有可能。如果您不知道如何继续,那么现在,您应该对从哪里开始有一些想法,这应该为您提供有关您需要搜索哪些主题以实现良好解决方案的想法

    注意如果您遇到任何这些步骤,那么这应该是一个单独的,专注的&具体问题。如果您询问有关具体问题的问题,而不是似乎要求提供完整解决方案的问题,您将获得更好的运气。

    我的建议是一步一步地解决这个问题。找出步骤1.如果遇到问题,有错误或问题,请提出问题。一旦你开始工作,尝试实施第2步。如果你遇到问题,请提出问题等等......