【发布时间】:2013-09-30 12:32:14
【问题描述】:
我一直在尝试通过 Excel 2010 在 VBA 中创建一个快速子例程,以自动通过 bit.ly 放置 URL 列表并将缩写链接复制回去以替换其原始链接。但是我收到一个错误 70: Permission Denied 运行时错误。我有几门课程,这大部分都有效,但我对 VBA 不是很熟悉,如果可能的话,可以在调试时使用一些帮助(这将是一个巨大的帮助)。代码如下:
Option Explicit
Dim IE As Object
Sub AutoAbbrev()
Set IE = CreateObject("InternetExplorer.Application")
Dim holdURL As String
Dim row_number As Integer
IE.Visible = True
For row_number = 101 To 112
holdURL = ""
If Range("b" & row_number).Value = "" Then GoTo Skip
IE.navigate "http://www.bitly.com" 'load bit.ly
Do While IE.readyState <> 4
DoEvents
Loop
IE.document.all("shorten_url").Value = Range("b" & row_number).Value
IE.document.all("shorten_btn").Click
Do While IE.document.all("shorten_url").Value = Range("b" & row_number).Value Or IE.document.all("shorten_url").Value = ""
DoEvents
Loop
holdURL = IE.document.all("shorten_url").Value
IE.document.all("shorten_url").Value = ""
Range("b" & row_number).Value = holdURL
Skip:
Next row_number
End Sub
Private Sub Command1_Click()
AutoAbbrev
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set IE = Nothing
If TypeName(IE) <> "Nothing" Then Unload IE
Set IE2 = Nothing
If TypeName(IE2) <> "Nothing" Then Unload IE2
End Sub
程序运行一次或多次迭代后,错误大多出现在这一行:
Do While IE.document.all("shorten_url").Value = Range("b" & row_number).Value Or IE.document.all("shorten_url").Value = ""
DoEvents
Loop
如果能提供任何具体的建议来帮助我克服这个困难,我将不胜感激。谢谢!
【问题讨论】:
-
您能否举一个 Col B 单元格值的任何一个示例,以便我们对其进行测试?
-
可能使用可以这样尝试.. 虽然 IE.document.getelementsbyid("shorten_url") nothing 'do more checks here DoEvents end while
-
b 列中的任何值都可以替换为任何网络链接 - stackoverflow.com、google.com 等。
标签: vba excel permission-denied browser-automation