我不熟悉使用VBA进行网络互动。
我有一个UserForm(" FrmResults
"),带有一个文本框(" TxtSql
")。我正在尝试使用VBA打开一个网站,并将文本框中的文本粘贴到此网站上的文本区域。
到目前为止,我有以下代码,但这总是在最后一段启动调试器,即我试图设置textarea的值 - 即使我只是使用" test"用于检测。我也尝试使用.InnerHtml
代替.Value
,但这也失败了。
它在打开网站后总是停止,因此无法从剪贴板粘贴复制的文本。
有人可以告诉我这里做错了什么或错过了吗?
我的代码:
Dim IE As Object
Dim MyURL As String
Dim varResults As New DataObject
varResults.SetText TxtSql.Text
varResults.PutInClipboard
Set IE = CreateObject("InternetExplorer.Application")
MyURL = "myURL"
IE.Navigate MyURL
IE.Visible = True
While IE.busy
DoEvents
Wend
With IE.Document
.getElementById("Oracle_profile_sql").Value = varResults
' .all("mapnow_button").Click
End With
答案 0 :(得分:0)
取决于您尝试访问的网站。 例如,元素可以是数组。这是有用的东西:
Option Explicit
Public Sub TestMe()
Dim IE As Object
Dim MyURL As String
Dim varResults As New DataObject
Dim el As Object
Set IE = CreateObject("InternetExplorer.Application")
MyURL = "http://www.stackoverflow.com"
IE.Navigate MyURL
IE.Visible = True
While IE.busy
Application.Wait (Now + TimeValue("0:00:2"))
Wend
Set el = IE.Document.getElementById("search")(0)
el.value = "TEST"
End Sub
答案 1 :(得分:0)
以下代码将打开" Google.com" (对于我的测试),并将来自" TextSql" &{34;搜索"中的TextBox
(来自User_Form) " Google"的文本栏网站。
在您的情况下,请使用以下行:
.getElementById("Oracle_profile_sql").Value = varResults.GetText(1)
<强>代码强>
Private Sub CommandButton1_Click()
Dim IE As Object
Dim MyURL As String
Dim varResults As New DataObject
varResults.SetText TxtSql.Text
varResults.PutInClipboard
Set IE = CreateObject("InternetExplorer.Application")
' tested with the "Search" in Google
MyURL = "https://www.google.de/?gfe_rd=cr&ei=pj2TWLrWFYTN8gf0uIaIBw&gws_rd=ssl" ' "myURL"
IE.Navigate MyURL
IE.Visible = True
While IE.busy
DoEvents
Wend
With IE.Document
.getElementById("lst-ib").Value = varResults.GetText(1)
End With
End Sub