我正在尝试自动下载此网页的内容
https://app.cfe.mx/Aplicaciones/CCFE/Tarifas/TarifasCREIndustria/Tarifas/DemandaIndustrialSub.aspx
Sub DescargarTarifasCFE()
Dim IE As InternetExplorer
Dim HTMLDoc As HTMLDocument
Dim URL As String
Dim FechaINI As Date, FechaFIN As Date, Fecha As Date
Dim HTMLSeleccionar As HTMLSelectElement
Application.Calculate
Application.StatusBar = False
FechaINI = Sheets("Base").Range("FINI").Value 'asignamos a las variables los valores de las fechas
FechaFIN = Sheets("Base").Range("FFIN").Value
For Fecha = FechaINI To FechaFIN
If Day(Fecha) = 1 Then 'filtro la acción cuando el dia sea 1 ... de esa manera solo hago una entrada ...
URL = "https://app.cfe.mx/Aplicaciones/CCFE/Tarifas/TarifasCREIndustria/Tarifas/DemandaIndustrialSub.aspx"
Set IE = CreateObject("InternetExplorer.Application")
With IE
.navigate URL
Do Until .readyState = 4: DoEvents: Loop
End With
IE.Visible = True
Set HTMLDoc = IE.Document
Set HTMLSeleccionar = HTMLDoc.getElementById("ContentPlaceHolder1_Fecha_ddAnio")
HTMLSeleccionar.Value = Year(Fecha)
end if
next fecha
我可以更改年份的值,但是与通过网络进行直接检查相比,此操作无法获得相同的结果。我认为在第二种情况下执行了一些代码..问题是我不知道如何通过VBA复制此动作
答案 0 :(得分:0)
您需要触发onchange事件
HTMLSeleccionar.FireEvent "onchange"
答案 1 :(得分:0)
您只需要使用css attribute = value选择器来定位正确的年份选项。下面包括有关是否已选择它的检查。
您可以在此处看到父</tr>
ID和子select
标签option
属性:
此:
value
通过首先按id .querySelector("#ContentPlaceHolder1_Fecha_ddAnio [selected]").Value
查找父select
元素,然后使用descendant combinator #ContentPlaceHolder1_Fecha_ddAnio
和\[\]
返回正确选择的年份属性选择器以在其中找到所选选项。
此:
" "
构造所需的属性=值选择器,例如
.querySelector("[value='" & CStr(año) & "']").Selected = True
VBA:
[value='2018']