我想提取一些输入参数从内部网站提取表优秀。一切工作,直到它刷新我的输入网站数据。我得到运行时错误438的部分标记为(For r = 1 To elemCollection.Rows.Length - 1
)。我也尝试使用网页查询将数据从网站加载到excel,并且表格未显示在我的Excel电子表格中。 “它给出了以下错误 - 该页面可能无法正常工作,因为您的浏览器不支持脚本或禁用活动脚本。您的浏览器不支持脚本或已配置为不允许脚本。报告查看器Web控制http处理程序有未在应用程序的Web配置文件中注册。“Excel VBA运行时错误438.对象不支持此属性或方法。当试图复制网站表excel
想知道这是否与权限有关。
VBA代码如下:
Option Explicit
Sub Macro1()
Dim IE As Object, obj As Object
Dim StartDate As Object
Dim EndDate As Object
Dim myState As String
Dim r As Integer, c As Integer, t As Integer
Dim elemCollection As Object, curHTMLRow As Object
Dim wb As Workbook
Dim ws As Worksheet
Dim objCollection As Object
Dim objElement As Object
Dim i As Long
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate ("http://internalwebsite_SSRSReport")
' we ensure that the web page downloads completely before we fill the form automatically
While IE.ReadyState <> 4: DoEvents: Wend
IE.Document.All.Item("ctl31_ctl03_txtValue").InnerText = Format("7/1/2016", "m/d/yyyy")
IE.Document.All.Item("ctl31_ctl05_txtValue").InnerText = Format("7/31/2016", "m/d/yyyy")
Wait 2
IE.Document.getElementsByName("ctl31_ctl04_divDropDown").Item.Click
Wait 2
' accessing the button
IE.Document.getElementsByName("ctl31_ctl04_ctl00").Item.Click
Wait 2
' again ensuring that the web page loads completely before we start scraping data
While IE.busy: DoEvents: Wend
Wait 2
'Clearing any unnecessary or old data in Sheet1
ThisWorkbook.Sheets("Sheet1").Activate
Range("A1:K500").ClearContents
Set elemCollection = IE.Document.getelementbyId("ctl31_ctl09_ReportArea")
'error here
For r = 1 To elemCollection.Rows.Length - 1
Set curHTMLRow = elemCollection.Rows(r)
For c = 0 To curHTMLRow.Cells.Length - 1
Cells(r + 1, c + 1) = curHTMLRow.Cells(c).InnerText
Next
Next
' cleaning up memory
IE.Quit
Set IE = Nothing
End Sub
Private Sub Wait(ByVal nSec As Long)
nSec = nSec + Timer
While nSec > Timer
DoEvents
Wend
End Sub
你们是不是要读从网站每个TR的TD的减少了一些行的变量? –
嗨瑞安,我有一个庞大的数据集,我想从我的网站上复制。我如何为大数据集做这项工作?提前谢谢了!对于每个TR在TR_Elements 集TD_Elements = TR.getElementsByTagName(“TD”) ColumnNumb = 1 对于每个TD在TD_Elements 是很多的“使用阵列以将值保存到存储器,如果有打算 考虑”数据移动在 ActiveSheet.Cells(RowNumb,ColumnNumb).value的= TD.InnerText ColumnNumb = ColumnNumb + 1 接下来 RowNumb = RowNumb + 1 接下来 – miracleclam