2016-12-28 184 views
0

我使用VBA尝试从网站中刮取时间/日期。我试图从中提取它的项目是导致下拉日历的文本框。在文本框的内部,我可以看到并选择要提取的文本。下面是HTML:VBA - 从独特的TextBox /下拉日历中提取日期/时间

<input type="text" date-begin="ac.Start" date-end="ac.Finish" ng-model="Data.estRange" ng-change="updateDuration()" size="45" style="display:inline;" name="estRange" id="estRange" value="" rangepicker="" class="ng-isolate-scope ng-valid ng-dirty ng-valid-date-range"> 

它里面说, “MM/DD/YYYY HH:MM PM - MM/DD/YYYY HH:MM PM” 文本框。

当我尝试抓取内部文本时,没有任何东西会返回。下面是我尝试使用的代码示例:

 Set objinputs = aExplorer.document.getElementsByTagName("input") 
     For Each ele In objinputs 
      If ele.TagName Like "date-end" Then 
      cTestScrape = ele.innertext 
      End If 
     Next 
     Do While aExplorer.Busy 
      Application.Wait DateAdd("s", 10, Now) 
     Loop 

关于如何正确做到这一点任何想法?谢谢!

+0

您试过ele.Value吗? – Sorceri

+0

非常感谢Sorceri!这工作!为什么它的工作考虑到HTML代码列出.value为“”?我相信价值并没有相应的东西。它是如何从空串中攫取任何东西的? – StevenB

+0

它很可能是通过javascript设置 – Sorceri

回答

0

每Sorceri(谢谢!),

即使ele.Value字符串在HTML列为空白,拉动.value的数据正确地与一个额外的修改上市代码中的日期/时间拉(改变ele.tagname)。这是正确的代码。

  Set objinputs = aExplorer.document.getElementsByTagName("input") 
     For Each ele In objinputs 
      If ele.Name Like "estRange" Then 
      cTestScrape4 = ele.Value 
      End If 
     Next 
     Do While aExplorer.Busy 
      Application.Wait DateAdd("s", 10, Now) 
     Loop