2016-12-28 45 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