Я пытаюсь открыть сайт IE (связанный с информацией о билете клиента) с помощью макроса. Мне нужно идентифицировать одну HTML-таблицу на веб-странице и скопировать ее содержимое в Excel через буфер обмена. Но для каждого полученного билета номер таблицы меняется. Для первого билета он прошел успешно, но для второго билета номер таблицы изменился. Как я могу получить номер таблицы HTML для каждого тикета, так как это переменная. Я пытаюсь использовать приведенный ниже код. Пожалуйста, дайте мне знать, если я что-то упускаю или мне нужно поделиться некоторыми подробностями. Я только изучаю VBA, поэтому, пожалуйста, не стесняйтесь указывать на любые ошибки.
sub sample()
Dim XMLHTTP As Object, html As Object
Dim Clipboard As Object
Dim Tabl_name As IHTMLElement
last_lin1st = Worksheets("sheet1").Columns(2).Find("Sum").Row
val_nci = Worksheets("sheet1").Range("B" & i).Value
With ThisWorkbook
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = "temp"
End With
Set ie = Nothing
Set IeDoc = Nothing
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
strHTML = "webURL"
ie.navigate strHTML
Set IeDoc = ie.document
Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
msg = ie.document.Body.innerhtml
Set Clipboard = New MSForms.DataObject
Clipboard.SetText ie.document.getElementsByTagName("Table")(32).outerHTML
Clipboard.PutInClipboard
Worksheets("temp").Cells(1, 1).PasteSpecial
End Sub
Номер таблицы для первого билета - 32, что работает нормально. Но для следующего билета это 28. И отличается для остальных билетов. Поэтому я застрял в поиске номера таблицы, так как мне нужно скопировать эту таблицу и вставить ее в лист Excel для каждого билета.
PS: Если вы отрицаете вопрос, попросите вас указать причину, добавив комментарий. Иначе, я не смогу изменить вопрос, или я не узнаю, где проблема с моим вопросом. Заранее спасибо за вашу поддержку.
Ниже приведен пример HTML-кода страницы. Дайте мне знать, какое имя таблицы я должен ввести в getElementsbyTagName:
<div class="issuePanelContainer" id="issue_actions_container">
<table width="100%">
<tr>
<td bgcolor="#f0f0f0" width=34%><b>Transition</b></td>
<td bgcolor="#f0f0f0" width=15%><b>Status Change Time</b></td>
<td bgcolor="#f0f0f0" width=15% align=center><b>Execution Times</b></td>
<td bgcolor="#f0f0f0" width=18%><b>Last Executer</b></td>
<td bgcolor="#f0f0f0" width=18%><b>Last Execution Date</b></td>
</tr>
<tr>
<td bgcolor="#ffffff" width=34% valign=top>
<table width="100%">
<tr>
<td width=7% valign=center>
<img src="/images/icons/status_generic.gif" height="16" width="16" alt="New" title="New - The issue is created" /> </td>
<td width=40% valign=top>
New
</td>
<td align="center" nowrap="nowrap" width=6% valign=top>
<img src="/images/icons/arrow_right_small.gif" align="absmiddle" border="0" height="16" width="16">
</td>
<td width=7% valign=center>
<img src="/images/icons/status_open.gif" height="16" width="16" alt="Opened" title="Opened - The issue is open and ready for the assignee to start work on it." />
</td>
<td width=40% valign=top>
Opened
</td>
</tr>
</table>
</td>
<td bgcolor="#ffffff" width=15% valign=top align=right>
<table width="100%">
<tr>
<td valign=top
2d 20h
</td>
</tr>
</table>
</td>
<td bgcolor="#ffffff" width=15% valign=top align=center>
<table width="100%">
<tr>
<td valign=top align="center">
1
</td>
</tr>
</table>
</td>
<td bgcolor="#ffffff" width=18% valign=top>
<table width="100%">
<tr>
<td valign=top>
<a id="email_470121" href="/secure/ViewProfile.jspa?name=123456">username</a>
</td>
</tr>
</table>
</td>
</td>
<td bgcolor="#ffffff" width=18% valign=top align=right>
<table width="100%">
<tr>
<td valign=top align=right>
26/11/2017 12:47 PM
</td>
</tr>
</table>
</td>
</tr>