2017-05-27 2 views
-1

Ich bin neu, auf dem Gebiet der Programmierung.getelement in excel VBA

Ich möchte wissen, wie Code für Getelement in Excel VBA schreiben, um Ablaufdatum (30/Nov/2017) aus dem unten HTML-Code zu extrahieren.

Ich habe viel versucht Code zu schreiben, konnte aber nicht erfolgreich sein, auch F8 funktioniert nicht in meiner Excel VBA.

Also suche ich Hilfe von euch Völkern.

</TABLE> 
</TD> 
<TD></TD></TR> 
<TR><TD></TD> 
<TD COLSPAN=3 CLASS='subheader2' ALIGN='LEFT'><SPAN ID='spanLicense'CLASS='showHide' onMouseOver="this.style.cursor='pointer';" onMouseOut="this.style.cursor='auto';" onClick ="ShowHideDetails('license');">-</SPAN>&nbsp;License Details</TD> 
<TD></TD></TR> 
<TR><TD></TD> 
<TD COLSPAN=3 ALIGN='right'> 
<div id='divLicense' name='divLicense' style = 'display:none'><table border=0 cellpadding=0 cellspacing=0 align='center'></table></div>&nbsp;&nbsp;|&nbsp;<a href='#spanBasic'>Top</a>&nbsp;|&nbsp;<a HREF='#spanBottom'>Bottom</a></TD> 
<TD></TD></TR> 
<TR><TD></TD> 
<TD COLSPAN=3 CLASS = 'hline'>&nbsp;</TD> 
<TD></TD></TR> 
<TR ID='trLicenseInfoContainer'><TD></TD> 
<TD COLSPAN=3> 
<TABLE width='100%' CELLSPACING='0' BORDER='0' CELLPADDING='2' ALIGN='CENTER'> 
<TR> 
<TD WIDTH='24%'></TD> 
<TD WIDTH='1%'></TD> 
<TD WIDTH='75%'></TD> 
</TR> 
<TR> 
<TD ALIGN='LEFT' CLASS=odd>Issue date</TD> 
<TD ALIGN='LEFT' CLASS=odd>:</TD> 
<TD ALIGN='LEFT' CLASS=odd>27-May-2017 02:34:00 PM</TD> 
</TR> 
<TR> 
<TD ALIGN='LEFT' CLASS=even>Expiry date</TD> 
<TD ALIGN='LEFT' CLASS=even>:</TD> 
<TD ALIGN='LEFT' CLASS=even></TD> 
</TR> 
<TR> 
<TD ALIGN='LEFT' CLASS=odd>Tally Software Services subscription</TD> 
<TD ALIGN='LEFT' CLASS=odd>:</TD> 
<TD ALIGN='LEFT' CLASS=odd>Active (Expires on ***30-Nov-2017***)&nbsp;&nbsp;<a href = 'javascript:;' onclick = 'renewTSS(200203221,200203221,29514);' style='color:green' >Renew TSS</a></TD> 
</TR> 
<TR> 
<TD ALIGN='LEFT' CLASS=even>XBRL subscription</TD> 
<TD ALIGN='LEFT' CLASS=even>:</TD> 
<TD ALIGN='LEFT' CLASS=even>Expired on 31-Mar-2016</TD> 
</TR> 
<TR> 
<TD ALIGN='LEFT' CLASS=odd>Offline Limit</TD> 
<TD ALIGN='LEFT' CLASS=odd>:</TD> 
<TD ALIGN='LEFT' CLASS=odd>30</TD> 
</TR> 
<TR> 
<TD ALIGN='LEFT' CLASS=even>TVP</TD> 
<TD ALIGN='LEFT' CLASS=even>:</TD> 
<TD ALIGN='LEFT' CLASS=even>Expired on 31-Oct-2007</TD> 
</TR> 
</TABLE> 
+0

Haben Sie diese Daten in einem Excel-Blatt? pls post das Bild von diesem Excel. –

Antwort

0

Können Sie das versuchen?

Sub Macro1() 

Dim TheDate As String 
Dim StartLoc As String 

Set ie = CreateObject("InternetExplorer.application") 


With ie 
    .Visible = True 
    .navigate "https://URL_to_naviagte_to" 

' Wait for the page to fully load; you can't do anything if the page is not fully loaded 
Do While .Busy Or _ 
    .ReadyState <> 4 
    DoEvents 
Loop 


' Possible Solution # 1 
' Find the date string in the page 
TheDate = "***" 
StartLoc = InStr(1, ie.document.body.innerhtml, TheDate) 
     GoOver = Mid(span.innerhtml, StartLoc + 3, 11) 

End Sub 
+0

Danke, ich denke, d Frage tat ich fragte nicht erfüllt die Anforderung lassen Sie mich neu zu gestalten, ich habe eine Reihe von Produkt Lizenznummern, für die ich Ablaufdatum von der Webseite extrahieren muss. Wenn ich Getelementbytagname ("td") verwende, gibt es mehr als 1 Element mit dem Tagnamen "td". Wenn ich GetementByClassname ("Odd") verwende, gibt es mehr als 1 Element mit dem Klassennamen "Odd". daher dachte ich, das Element mit Xpath zu bekommen // * [@ id = "trLicenseInfoContainer"]/td [2]/table/tbody/tr [4]/tr [3] das ist d xpath zum Element. Da Vba Excel keine eingebaute Methode hat, um ein XPath-Element zu erhalten, wie mache ich es. –