如何使用vba将excel电子表格范围内容推送到URL中的特定表单

如何使用vba将excel电子表格范围内容推送到URL中的特定表单,excel,vba,Excel,Vba,我一直在研究许多不同的论坛,YouTubing像疯了一样,发现了一些我怀疑很接近的东西,但我没有得到我想要的效果。我相当有信心,我知道执行特定流程所需的步骤,但我正在寻求任何愿意伸出援手的人的帮助 意图(为什么这对您也有用): 我负责安排(为我的老板)对许多不同房地产的实地考察。每个属性都有一个不同的铅触点,该触点会定期更改。我一直在努力创建一个电子表格: 跟踪每个客户机在计划过程中所处的步骤, 随时 为保持最新联系提供直观的平台 每个客户在被要求安排约会时的信息、会议时间和杂项说明 连接数据

我一直在研究许多不同的论坛,YouTubing像疯了一样,发现了一些我怀疑很接近的东西,但我没有得到我想要的效果。我相当有信心,我知道执行特定流程所需的步骤,但我正在寻求任何愿意伸出援手的人的帮助

意图(为什么这对您也有用):

我负责安排(为我的老板)对许多不同房地产的实地考察。每个属性都有一个不同的铅触点,该触点会定期更改。我一直在努力创建一个电子表格:

  • 跟踪每个客户机在计划过程中所处的步骤, 随时
  • 为保持最新联系提供直观的平台 每个客户在被要求安排约会时的信息、会议时间和杂项说明
  • 连接数据并使用颜色代码(通过BatchGeo.com在谷歌地图中) 从前两个要点到地图上的属性
这将如何有用的案例示例 通过在地图上可视化这些数据,并创建组(由不同颜色的谷歌地图别针表示),人们可以直观地查看地图,并安排相邻站点的连续约会,以“一石二鸟”

如何手动完成此过程:

我想自动导航到以前创建的URL(编辑地图链接),使用“编辑地图链接”将给定单元格范围(即A1:E10)内的所有单元格复制并粘贴到特定表单,然后单击更新按钮。此外,应使用嵌入式web浏览器在Excel中完成所有导航(无需打开单独的浏览器)

//批量地理位置“edt地图”链接

//
//网站源代码printscreen

代码草案

Private Sub CommandButton1_Click()

    WebBrowser2.Navigate2 ActiveSheet.Range("C15").Value

    WebBrowser2.Document.getElementById("edit_form").Range.("B3:I7").Value

End Sub

假设IWebBrowser2像IE一样工作,这应该可以实现。我已经用IE测试过了,因为我对它比较熟悉,但我认为应该是一样的

注意:B3:I7范围中的第一行需要包含标题(姓名、电话号码等),否则系统会提示您验证地址,只需确保工作表格式正确即可发送到表单

Option Explicit
Sub LogMeIn()
'Requires reference to Microsoft HTML Object Library
Dim ie As InternetExplorer
Dim htmlDoc As HTMLDocument
Dim el As HTMLFormElement
Dim pasteValues As String
Dim vals As Range
Dim r As Long
Dim c As Long

'## Store the values in a delimited string
Set vals = Range("B3:I7")
For r = 1 To vals.Rows.Count
    For c = 1 To vals.Columns.Count
        If Not c = 1 Then
            pasteValues = pasteValues & vbTab & vals(r, c)
        Else:
            pasteValues = pasteValues & vbNewLine & vals(r, c)
        End If

    Next
Next

'## Create an instance of IE (alternatively you can probably use WebBrowser2)
Set ie = New InternetExplorer

'## So you can see what's happening/debug. delete the next line if you want.
ie.Visible = True

'## Navigate to the URL:
ie.Navigate "http://batchgeo.com/map/edit/?map_id=2874687&d=0aa639559d0883376a15e66afdc042b0"

'## Make sure the page has finished loading
Do Until ie.ReadyState = 4
    DoEvents
Loop

'## Set our Document variable
Set htmlDoc = ie.Document

'## Set the element variable
Set el = htmlDoc.getElementById("sourceData")

'## Send the values to the form
el.innerText = pasteValues
'## I use this to confirm I have grabbed the correct element, you can delete or comment it out.
MsgBox "The form now contains the following data, although it may not be visible:" & _
        vbNewLine & vbNewLine & _
        pasteValues

'## Update the map
htmlDoc.getElementById("mapnow_button").Click

'## Cleanup
Set ie = Nothing
End Sub

//对应的示例Excel文件printscreen*//链接到实际Excel文件*方法返回元素。您可以尝试类似的方法:
WebBrowser2.Document.getElementById(“编辑表单”).Value=Range(“B3:I7”)
,但我不确定此元素是否期望或能够接收值数组。仅测试了上述代码,它不起作用。表单需要进行复制/粘贴操作或拖放操作,我想…您有机会测试我提供的答案吗?如果有效,请将其标记为已接受。。。