[英]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.