VBA-Wählen Sie aus der dropdown-Liste im Internet Explorer
edit: ich räumte die Quelle-code-Formatierung und aktualisiert mein VBA-code. Ich bin nicht mehr die Fehlermeldung erhalten, aber nichts ist passiert in meinem browser-Fenster (nichts markiert, nichts angeklickt).
Ich habe einige VBA-code, der ermöglicht einem Benutzer die Eingabe von Informationen in ein Formular in Excel. Der code wird diese Informationen und erzeugt eine Adresse zu einer Seite in unserem intranet. Auf dieser Seite gibt es eine dropdown-Liste wählen Sie format exportieren und nach ein format gewählt wird, kann der Benutzer klicken, um die Datei zu exportieren.
Den VBA-code habe ich versucht (und einige Varianten) unten:
Public Sub window_Open(strLocation As String, Menubar As Boolean, height As Long, width As Long, resizable As Boolean)
With CreateObject("InternetExplorer.Application")
.Visible = False
.height = height
.width = width
.Menubar = Menubar
.Visible = True
.resizable = True
.Navigate strLocation
End With
End Sub
Private Sub OKButton_Click()
Dim ProductionAddress As String
ProductionAddress = "http://Collapsed"
window_Open ProductionAddress, True, 800, 1000, False
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate ProductionAddress
While ie.ReadyState <> 4 Or ie.Busy: DoEvents: Wend
ie.document.getelementbyid("ReportViewerControl_ctl01_ctl05_ctl00").Value = "EXCEL"
Set objButton = ie.document.getelementbyid("ReportViewerControl_ctl01_ctl05_ctl01")
objButton.Focus
objButton.Click
End Sub
Den Quellcode für die Seite, die ich bin versucht zu navigieren ist unten.
Element zur Auswahl von EXCEL:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<style>
body, frameset, form {
margin: 0px;
padding: 0px;
}
.PageNumberText, input, button, select, table, body, frameset {
font-size: 8pt;
font-family: Verdana;
}
.ToolbarExport {
display: inline;
}
.WidgetSet {
height: 30px;
}
.ToolBarButtonsCell {
padding-left: 6px;
}
.MenuBarBkGnd {
background-color: #ECE9D8;
}
</style>
</head>
<body style="margin: 0px; overflow: auto;"><form name="ReportViewerForm" id="ReportViewerForm" action="ReportViewer.aspx?%2fProduction%2fWell+Daily+Production&StartDate=01%2f01%2f2015+00%3a00%3a00&EndDate=07%2f21%2f2015+00%3a00%3a00&WellName=Acadia&rs%3aParameterLanguage=&rc%3aParameters=Collapsed" method="post"><table id="ReportViewerControl" style="width: 100%; height: 100%;" onclick="if (document.getElementById('ReportViewerControl_ctl00') != null) document.getElementById('ReportViewerControl_ctl00').ParametersController.HideActiveDropDown();" onactivate="if (document.getElementById('ReportViewerControl_ctl00') != null) document.getElementById('ReportViewerControl_ctl00').ParametersController.HideActiveDropDown();" cellspacing="0" cellpadding="0"><tbody><tr><td><div class="MenuBarBkGnd"><div class="ToolBarButtonsCell"><div class="ToolbarExport WidgetSet"><table style="display: inline;" cellspacing="0" cellpadding="0"><tbody><tr><td height="28"><select name="ReportViewerControl$ctl01$ctl05$ctl00" title="Export Formats" id="ReportViewerControl_ctl01_ctl05_ctl00" onchange="document.getElementById('ReportViewerControl_ctl01_ctl05_ctl01').Controller.SetViewerLinkActive(document.getElementById('ReportViewerControl_ctl01_ctl05_ctl00').selectedIndex != 0);"><option value="EXCEL">Excel</option></select></td></tr></tbody></table></div></div></div></td></tr></tbody></table></form></body>
</html>
Und der source-code für den export element:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<style>
.DisabledLink {
font-size: 8pt;
font-family: Verdana;
color: gray;
text-decoration: none;
cursor: default;
}
body, frameset, form {
margin: 0px;
padding: 0px;
}
.PageNumberText, input, button, select, table, body, frameset {
font-size: 8pt;
font-family: Verdana;
}
.ToolbarExport {
display: inline;
}
.WidgetSet {
height: 30px;
}
.ToolBarButtonsCell {
padding-left: 6px;
}
.MenuBarBkGnd {
background-color: #ECE9D8;
}
</style>
</head>
<body style="margin: 0px; overflow: auto;"><form name="ReportViewerForm" id="ReportViewerForm" action="ReportViewer.aspx?%2fProduction%2fWell+Daily+Production&StartDate=01%2f01%2f2015+00%3a00%3a00&EndDate=07%2f21%2f2015+00%3a00%3a00&WellName=Acadia&rs%3aParameterLanguage=&rc%3aParameters=Collapsed" method="post"><table id="ReportViewerControl" style="width: 100%; height: 100%;" onclick="if (document.getElementById('ReportViewerControl_ctl00') != null) document.getElementById('ReportViewerControl_ctl00').ParametersController.HideActiveDropDown();" onactivate="if (document.getElementById('ReportViewerControl_ctl00') != null) document.getElementById('ReportViewerControl_ctl00').ParametersController.HideActiveDropDown();" cellspacing="0" cellpadding="0"><tbody><tr><td><div class="MenuBarBkGnd"><div class="ToolBarButtonsCell"><div class="ToolbarExport WidgetSet"><table style="display: inline;" cellspacing="0" cellpadding="0"><tbody><tr><td height="28"><a title="Export" class="DisabledLink" id="ReportViewerControl_ctl01_ctl05_ctl01" onmouseover="this.Controller.OnLinkHover();" onmouseout="this.Controller.OnLinkNormal();" onclick=" var formatDropDown = document.getElementById('ReportViewerControl_ctl01_ctl05_ctl00'); if (formatDropDown.selectedIndex == 0) return false; window.open(document.getElementById('ReportViewerControl').ClientController.m_exportUrlBase + encodeURIComponent(formatDropDown.value), '_blank') formatDropDown.selectedIndex = 0; document.getElementById('ReportViewerControl_ctl01_ctl05_ctl01').Controller.SetViewerLinkActive(document.getElementById('ReportViewerControl_ctl01_ctl05_ctl00').selectedIndex != 0);return false;" href="#"><script type="text/javascript">
document.getElementById('ReportViewerControl_ctl01_ctl05_ctl01').Controller = new ReportViewerLink("ReportViewerControl_ctl01_ctl05_ctl01", false, "ActiveLink", "DisabledLink", "", "", "");
</script>Export</a></td></tr></tbody></table></div></div></div></td></tr></tbody></table></form></body>
</html>
Dank!
window_Open
tun?InformationsquelleAutor elt2jdavis | 2015-07-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie tatsächlich navigieren Sie zu der Seite, damit das laden der Dokument - verwenden Sie dann den folgenden code:
Verwenden Sie die option, die innerhalb der
<option>
tag.Zu navigieren:
Ich entschuldige mich, ich wollte
code
Formatierung zu arbeiten, aber dann bekam ich gesperrt Bearbeiten. Sollte ich eine eigene Frage für das klicken auf das Export-element?Sie müssen erklären, was
window_Open
hatwindow_Open
öffnet ein Internet Explorer browser-Fenster. Füge ich den code auf meine FrageDu bist wirklich zu öffnen 2 Instanzen des IE. Erstellen Sie eine öffentliche variable, und weisen Sie diese in Ihrem window_Open routine statt. Oder einfach nicht mit dem window_Open routine überhaupt.
InformationsquelleAutor Sam
Hatte ich eine wirklich harte Zeit, diesen code zu arbeiten und keines der vorhandenen Fragen, die ich gefunden hatte, klare Antworten, so wollte ich den code landete ich mit, dass gearbeitet:
Diese die Seite geöffnet, aus dem dropdown Menü und klickte auf ein element über die ID-erfolgreich.
InformationsquelleAutor elt2jdavis