Excel VBA-制作翻译程序时ie.navigate功能出现问题
我试图通过使ie可见(真实)来了解问题所在。事实证明,当我使用:Excel VBA-制作翻译程序时ie.navigate功能出现问题,vba,excel,internet-explorer,Vba,Excel,Internet Explorer,我试图通过使ie可见(真实)来了解问题所在。事实证明,当我使用: ie.navigate "https://translate.google.com/#" & ilang & "/" & olang & "/" & cell.Value 它不会在应该的时候重新加载页面。 例如,请参阅以下图片: 因此,它会在地址栏中输入新的URL,但实际上不会导航到该URL。 代码在这里(子程序): 实际代码: 'A function called translat
ie.navigate "https://translate.google.com/#" & ilang & "/" & olang & "/" & cell.Value
它不会在应该的时候重新加载页面。
例如,请参阅以下图片:
因此,它会在地址栏中输入新的URL,但实际上不会导航到该URL。代码在这里(子程序): 实际代码:
'A function called translate
Public Function Translate(r As Range, ilang As String, olang As String) As String
'Declaring all variables
Dim ie As InternetExplorer
Dim y As Integer
Dim ys As String
Dim urmsg As String
Dim result As String
y = 0
Set ie = New InternetExplorer
ie.Visible = True
For Each cell In r
ie.navigate "https://translate.google.com/#" & ilang & "/" & olang & "/" & cell.Value
Do While ie.Busy = True Or ie.readyState <> 4: DoEvents: Loop
y = y + 1
result = ie.document.getElementById("result_box").innerText
Sheets("Sheet1").Range("G" & y).Value = result
Next cell
urmsg = MsgBox(ys & " Translations Executed...", vbOK, "Prompt")
ie.Quit
Translate = " "
End Function
“一个名为translate的函数
公共函数将(r作为范围,ilang作为字符串,olang作为字符串)转换为字符串
'声明所有变量
Dim ie作为InternetExplorer
Dim y作为整数
将Y作为字符串
Dim urmsg作为字符串
将结果变暗为字符串
y=0
Set ie=新的InternetExplorer
可见=真实
对于r中的每个单元格
即“导航”https://translate.google.com/#“&ilang&“/”&olang&“/”&cell.Value
当ie.Busy=True或ie.readyState 4:DoEvents:Loop时执行
y=y+1
结果=ie.document.getElementById(“结果框”).innerText
图纸(“图纸1”)。范围(“G”和y)。值=结果
下一个细胞
urmsg=MsgBox(ys&“已执行翻译…”,vbOK,“提示”)
即退出
Translate=“”
端函数
请告诉我是什么问题,这样我才能解决它。另外,如果代码非常复杂,并且有不必要的行,请对我放松,我只研究了VBA几天
谢谢。您可以在此处查看如何解决Excel中的翻译问题:[1]或[2]。谷歌也有一个网站,你应该使用它,而不是刮网页(这可能是不合法的:检查谷歌的使用条款)。嗨。我不知道这样做是违法的,但是,我并没有将此代码用于商业用途,我只是在尝试学习这门语言。谢谢你的回复@PehI没有说这是非法的,但你需要检查谷歌的使用条款是否合法。大多数网站通常不允许自动抓取网页(商业和个人使用)。因此,您需要检查这一点,或者改用API。
'A function called translate
Public Function Translate(r As Range, ilang As String, olang As String) As String
'Declaring all variables
Dim ie As InternetExplorer
Dim y As Integer
Dim ys As String
Dim urmsg As String
Dim result As String
y = 0
Set ie = New InternetExplorer
ie.Visible = True
For Each cell In r
ie.navigate "https://translate.google.com/#" & ilang & "/" & olang & "/" & cell.Value
Do While ie.Busy = True Or ie.readyState <> 4: DoEvents: Loop
y = y + 1
result = ie.document.getElementById("result_box").innerText
Sheets("Sheet1").Range("G" & y).Value = result
Next cell
urmsg = MsgBox(ys & " Translations Executed...", vbOK, "Prompt")
ie.Quit
Translate = " "
End Function