用于在Excel电子表格中生成带有参数的URL Web调用的程序

时间:2014-09-12 07:58:05

标签: string excel variables url concatenation

在Excel电子表格中,我想使用电子表格中特定列中所有单元格的参数多次调用URL网站。如果该列有20个单元格(例如:B1到B20有数值),那么我想要20种格式的调用:

https://www.zzzzzz.com/page.html?value1= $ F $ 1和;值2 = [价值从细胞-B1]安培;值3 = $ G $ 1 https://www.zzzzzz.com/page.html?value1= $ F $ 1和;值2 = [价值从细胞-B2]安培;值3 = $ G $ 1

将使用来自特定单元格的值(例如:F1和G1)设置几个固定参数,但只有其中一个将填充来自该列单元格的值(即,value1将取自电子表格中的单元格用于每个调用,value2将是20个URL调用中每个调用的列中的值(例如:B1,B2,B3 ... B20)。

没有程序的一种非常简单的方法是使用excel连接来创建URL字符串,然后将其复制19次(通过拖动单元格的一角)并使value2变量为B1 ... B20序列。然后我可以使用超链接excel forumla为20行中的每一行创建一个超链接。然后,我可以点击每个超链接,在单独的Google Chrome标签页中打开它。

抱歉,我知道这可能令人困惑,但我希望你能得到我想要做的事情的要点。 非常感谢。萨姆。

1 个答案:

答案 0 :(得分:0)

这听起来像是我使用他们的API创建了大量FogBugz条目。我只是留下了我可以依次点击的超链接。但是,如果您想以编程方式打开每个链接而无需人工干预,请打开一个新的Excel电子表格,在A列中添加一些URL,(www.stackoverflow.com,www.msdn.com,www.bbc.co.以3为例),将以下代码粘贴到宏中,然后运行它。

如果您不介意在每次通话后关闭IE,您可以取消注释objIE.quit线路,如果您不想看到IE,那么您可以注释掉或删除线路使objIE.Visible = true。

享受。

Option Explicit

Sub openWebPage()
    Dim URL As String
    Dim row As Integer
    Dim column As Integer

    row = 1 'start at row 1
    column = 1 ' go down column A

    While Sheet1.Cells(row, column) <> ""
        URL = Sheet1.Cells(row, column)
        MsgBox (URL)

        Call NavigateToURL(URL)

        row = row + 1
    Wend
End Sub

Public Sub NavigateToURL(ByVal argURL As String)
'This function found at
'http://www.mrexcel.com/forum/excel-questions/548585-visual-basic-applications-code-open-url.html
'Modified not to close IE afterwards, and also make IE visible

  Const READYSTATE_COMPLETE As Integer = 4

  Dim objIE As Object

  Set objIE = CreateObject("InternetExplorer.Application")

  With objIE
    .Visible = False
    .Silent = True
    .Navigate argURL
    Do Until .ReadyState = READYSTATE_COMPLETE
      DoEvents
    Loop
  End With

    objIE.Visible = True
  'objIE.Quit
  Set objIE = Nothing

End Sub