簡體   English   中英

Excel VBA 錯誤 - 運行時錯誤 70:權限被拒絕

[英]Excel VBA Error - Runtime Error 70: Permission Denied

我需要有關為我編寫的代碼的幫助。 代碼如下。 我的工作發現可能有 70% 的時間,但每隔大約 20 行它就會拋出

運行時錯誤 70:權限被拒絕

什么會導致這種情況,有什么解決辦法嗎? 另外,如何更改代碼以跳過此類(或類似)的任何錯誤,然后移至下一行。

調試器拋出這一行: If btn.ID = "gs_hdr_tsb" Then

完整的腳本如下。

Dim ie As Object
Private Sub CommandButton1_Click()
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.Navigate TextBox1.Text
    Do
    DoEvents
    Loop Until ie.readystate = 4
    Application.Wait (Now + TimeValue("00:00:02"))
End Sub

Private Sub CommandButton2_Click()
    Dim i As Long
    Dim prfl As String
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim INPTTG, btn As Object
    Dim Profile_link As String
    Dim H3tg As Object
    Dim iedata As Object
    If iedata Is Nothing Then
        Set iedata = CreateObject("InternetExplorer.Application")
    End If
    iedata.Visible = True
    For i = TextBox2.Text To TextBox3.Text
        prfl = ws.Range("E" & i).Value
        For Each INPTTG In ie.document.getelementsbytagname("input")
            If INPTTG.classname = "gs_in_txt" Then
                INPTTG.Value = ""
                INPTTG.Value = prfl
                Exit For
            End If
        Next INPTTG
        'button
        Application.Wait (Now + TimeValue("00:00:02"))
        For Each btn In ie.document.getelementsbytagname("button")
            If btn.ID = "gs_hdr_tsb" Then
                btn.Click
                Do
                DoEvents
                Loop Until ie.readystate = 4
                Application.Wait (Now + TimeValue("00:00:02"))
            End If
        Next btn
        'prfl
        For Each H3tg In ie.document.getelementsbytagname("h3")
            If H3tg.classname = "gsc_oai_name" And VBA.Trim(H3tg.innertext) = prfl Then
                Call GetData(H3tg.getelementsbytagname("a").Item(0).href, iedata, i)
                Exit For
            End If
        Next H3tg
        TextBox2.Text = i
    Next i
    MsgBox "Completed"
    iedata.Quit
    Set iedata = Nothing
    Application.DisplayAlerts = False
    ThisWorkbook.Save


End Sub

任何幫助將不勝感激。

試試這個。

Dim ie As Object
Private Sub CommandButton1_Click()
On error go to ErrMsg
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate TextBox1.Text
Do
DoEvents
Loop Until ie.readystate = 4
Application.Wait (Now + TimeValue("00:00:02"))
ErrMsg:
End Sub
Private Sub CommandButton2_Click()
Dim i As Long
Dim prfl As String
Dim ws As Worksheet
Set ws = ActiveSheet
Dim INPTTG, btn As Object
Dim Profile_link As String
Dim H3tg As Object
Dim iedata As Object
On error go to msgErr
If iedata Is Nothing Then
    Set iedata = CreateObject("InternetExplorer.Application")
End If
iedata.Visible = True
For i = TextBox2.Text To TextBox3.Text
    prfl = ws.Range("E" & i).Value
    For Each INPTTG In ie.document.getelementsbytagname("input")
        If INPTTG.classname = "gs_in_txt" Then
            INPTTG.Value = ""
            INPTTG.Value = prfl
            Exit For
        End If
    Next INPTTG
    'button
    Application.Wait (Now + TimeValue("00:00:02"))
    For Each btn In ie.document.getelementsbytagname("button")
        If btn.ID = "gs_hdr_tsb" Then
            btn.Click
            Do
            DoEvents
            Loop Until ie.readystate = 4
            Application.Wait (Now + TimeValue("00:00:02"))
        End If
    Next btn
    'prfl
    For Each H3tg In ie.document.getelementsbytagname("h3")
        If H3tg.classname = "gsc_oai_name" And VBA.Trim(H3tg.innertext) = prfl Then
        Call GetData(H3tg.getelementsbytagname("a").Item(0).href, iedata, i)
        Exit For
        End If
    Next H3tg
    TextBox2.Text = i
Next i
MsgBox "Completed"
iedata.Quit
Set iedata = Nothing
Application.DisplayAlerts = False
ThisWorkbook.Save
MsgErr:
End Sub

關於此VB錯誤,StackOverflow上有多個答案。 每個答案或情況在現實中都是唯一的-盡管每個現有答案都指出了不同的潛在根本原因(文件權限,文件夾權限,名稱重用,范圍等)。

我建議雙擊表示功能/代碼的一側以縮小根源,以標記一個折點(看起來像一個紅點)(或者,您可以右鍵單擊代碼行-選擇Toggle ,然后Breakpoint )。

接下來,運行您的代碼,它將在您的斷點處停止。 然后,您可以單步執行/移入/移出代碼,並從根本上找到負責引發錯誤代碼的代碼行。 (“進入”為F8 ,“進入”為Shift+F8 ((進入“ Debug頂部菜單以查看更多選項))

確定了負責任的代碼行后,您就可以開始進一步查找。

在我的情況下,我使用的是受保護的變量名“ Date”(查找變量名 )。 將其重命名為其他名稱后,問題已解決。

此錯誤的一個可能原因(如我的情況)是防病毒/反惡意軟件程序阻止了某些庫。 嘗試暫時禁用所有防病毒/反惡意軟件程序並再次測試您的腳本。 就我而言,Malwarebytes

在 MalWare 字節中,您可以通過以下方式禁用此設置:

安全 > 高級設置 > 應用程序強化 [選項卡]

在名為“禁用加載 VBScript 庫”的行上,取消選中“MS Office”下的復選框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM