简体   繁体   English

运行时错误70:权限被拒绝

[英]Runtime error 70: Permission Denied

I am getting an error saying 我说错了

"Runtime error 70: Permission Denied" “运行时错误70:权限被拒绝”

Below is code in which I am getting this error. 下面是我收到此错误的代码。

Sub reconwebscrap() ' ' reconwebscrap Macro ' ' Keyboard Shortcut: Ctrl+Shift+R
    Dim requestsearchrange As Range
    Dim cell1 As Range
    Dim cell2 As Range
    Dim entire As Range
    Dim IE As Object
    Dim revocdate As String
    Dim i As Integer
    Dim tags As Object
    Dim tagx As Object
    Dim tags2 As Object
    Dim tagsx As Object

    Application.DisplayStatusBar = True

    i = 0

    With ActiveWorkbook.Sheets(2)
        Set requestsearchrange = .Range(.Range("B2"), .Range("B2").End(xlDown))
    End With

    ActiveWorkbook.Worksheets.Add

    With ActiveWorkbook.Sheets(3)
        Set entire = .Range(.Range("A1"), .Range("A65536").End(xlUp))
    End With
the_start:

    Set IE = New InternetExplorerMedium

    'Set IE = CreateObject("InternetExplorer.Application")
    '-----------------------------------------------------------------------------------------------------------------
    'These attributes decide the position of internet explorer window.
    '-----------------------------------------------------------------------------------------------------------------

    IE.Top = 0
    IE.Left = 0
    IE.Width = 800
    IE.Height = 600

    '-----------------------------------------------------------------------------------------------------------------
    'Disable the viewing of Internet Explorer window.
    '-----------------------------------------------------------------------------------------------------------------

    IE.Visible = True

    '-----------------------------------------------------------------------------------------------------------------
    'Navigate to the website.
    '-----------------------------------------------------------------------------------------------------------------

    IE.Navigate ("https://ibid.abc.com/RMT/MyDashboard")

    '-----------------------------------------------------------------------------------------------------------------
    'Let the website load completely.
    'Error handling in case the website is not available.
    '-----------------------------------------------------------------------------------------------------------------
    Do Until Not IE.Busy
        DoEvents
        Application.StatusBar = " Running"
    Loop

    'Do
        'DoEvents
            'If Err.Number <> 0 Then
                'IE.Quit
                'Set IE = Nothing
                'GoTo the_start:
            'End If
    'Loop Until IE.readystate = 4

    MsgBox "webpage has loaded"

    revocdate = InputBox("enter the last revocation date")

    Set tags = IE.document.getElementsByTagName("img")
    'Set tags2 = IE.document.getElementById("dashboardSelect")

    For Each cell1 In requestsearchrange
        IE.document.getElementById("dashboardSelect").Value = "recipientSid"
        IE.document.getElementById("quickSearchCriteriaVar").Value = cell1.Value
        For Each tagx In tags
            If tagx.alt = "Search Request" Then
                tagx.Click
            End If
        Next tagx

        Do Until Not IE.Busy
            DoEvents
        Loop

        i = i + 1
        Application.StatusBar = i & " Running"

    Next cell1

    Application.StatusBar = ""
End Sub

I am getting this error in 我在收到此错误

For Each tagx In tags
    If tagx.alt = "Search Request" Then
        tagx.Click
    End If
Next tagx

In this code I am trying to enter a number in the search box and then click on the button. 在这段代码中,我试图在搜索框中输入一个数字,然后单击按钮。 Then wait for it to load and then enter the next number. 然后等待其加载,然后输入下一个数字。 But it is doing it for only first cell in excel sheet. 但这仅适用于Excel工作表中的第一个单元格。 After that I am getting this error. 之后,我得到这个错误。

I think the probably reason is the following: 我认为可能的原因如下:

At some point of your code you obtain the collection containing all elements with img tag name. 在代码的某个点上,您将获得包含所有带有img标签名称的元素的集合。

Later on the code goes into a loop. 稍后代码进入循环。 In every iteration of this loop one of this tag is clicked: 在此循环的每次迭代中,都单击以下标记之一:

tagx.Click

I suppose this fires some JS script and some changes are made in the HTML structure. 我想这会触发一些JS脚本并在HTML结构中进行一些更改。 This causes the collection obtained before is not longer usable and it should be obtained from scratch. 这导致以前获得的集合不再可用,应该从头开始获取。

So if you move this part of code: 因此,如果您移动这部分代码:

Set tags = IE.document.getElementsByTagName("img")

into this loop, it should work. 进入此循环,它应该工作。


Here is your code with this modification: 这是经过修改的代码:

Sub reconwebscrap() ' ' reconwebscrap Macro ' ' Keyboard Shortcut: Ctrl+Shift+R
    Dim requestsearchrange As Range
    Dim cell1 As Range
    Dim cell2 As Range
    Dim entire As Range
    Dim IE As Object
    Dim revocdate As String
    Dim i As Integer
    Dim tags As Object
    Dim tagx As Object
    Dim tags2 As Object
    Dim tagsx As Object

    Application.DisplayStatusBar = True

    i = 0

    With ActiveWorkbook.Sheets(2)
        Set requestsearchrange = .Range(.Range("B2"), .Range("B2").End(xlDown))
    End With

    ActiveWorkbook.Worksheets.Add

    With ActiveWorkbook.Sheets(3)
        Set entire = .Range(.Range("A1"), .Range("A65536").End(xlUp))
    End With
the_start:

    Set IE = New InternetExplorerMedium

    'Set IE = CreateObject("InternetExplorer.Application")

    '-----------------------------------------------------------------------------------------------------------------
    'These attributes decide the position of internet explorer window.
    '-----------------------------------------------------------------------------------------------------------------

    IE.Top = 0
    IE.Left = 0
    IE.Width = 800
    IE.Height = 600

    '-----------------------------------------------------------------------------------------------------------------
    'Disable the viewing of Internet Explorer window.
    '-----------------------------------------------------------------------------------------------------------------

    IE.Visible = True

    '-----------------------------------------------------------------------------------------------------------------
    'Navigate to the website.
    '-----------------------------------------------------------------------------------------------------------------

    IE.Navigate ("https://ibid.abc.com/RMT/MyDashboard")

    '-----------------------------------------------------------------------------------------------------------------
    'Let the website load completely.
    'Error handling in case the website is not available.
    '-----------------------------------------------------------------------------------------------------------------
    Do Until Not IE.Busy
        DoEvents
        Application.StatusBar = " Running"
    Loop

    'Do
        'DoEvents
            'If Err.Number <> 0 Then
                'IE.Quit
                'Set IE = Nothing
                'GoTo the_start:
            'End If
    'Loop Until IE.readystate = 4

    MsgBox "webpage has loaded"

    revocdate = InputBox("enter the last revocation date")


    'Set tags2 = IE.document.getElementById("dashboardSelect")

    For Each cell1 In requestsearchrange
        IE.document.getElementById("dashboardSelect").Value = "recipientSid"
        IE.document.getElementById("quickSearchCriteriaVar").Value = cell1.Value

        Set tags = IE.document.getElementsByTagName("img")

        For Each tagx In tags
            If tagx.alt = "Search Request" Then
                tagx.Click
            End If
        Next tagx

        Do Until Not IE.Busy
            DoEvents
        Loop

        i = i + 1
        Application.StatusBar = i & " Running"

    Next cell1

    Application.StatusBar = ""
End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM