Excel超链接types的function与点击事件做POST

我有一个Excel VBA函数,可以对ASPX页面进行POST。 我的目标是使其与HYPERLINKfunction类似。 该函数可以在电子表格中使用无限次,每次都可以从不同的单元格地址执行,并传递一系列参数(url,postdata等)。 该函数工作正常,除了它自动运行,而不是只有当用户点击活动单元格。

Function WinHTTPPostRequest(url, question, choice1, choice2, choice3, choice4, image, answer, linkDisplay) Dim http Dim formData As String formData = "&choice1=" & choice1 & "&choice2=" & choice2 & "&choice3=" & choice3 & "&choice4=" & choice4 & "&question=" & question & "&image=" & image & "&answer=" & answer formData = replaceSpaceWithPlus(formData) Call BrowserSend(url, formData) WinHTTPPostRequest = "Click Here" End Function 

谷歌search后,我已经能够find只有解决schemeselect/ case语句单元被点击和点击function是电子表格宽,而不是活动单元格特定。 这需要是用户可以无限复制的function(尽pipe在这种情况下,它只能在同一列垂直复制)。

任何build议将不胜感激。

你可以用略微不同的Excel结构来实现你的目标。 假设我们将一个插入的超链接放在一个单元格中(这是一个不使用= HYPERLINK()函数的超链接)。 超链接的目的地将单元格本身。 “友好名称”将是您的参数列表。

我们还将包含一个超链接跟随事件macros。

所以如果我们点击超链接,我们真的不会跳到任何地方。 事件macros将被触发。 事件macros将获取您的参数并执行POST。

编辑#1

这里是一个简单的例子…………挑选一个单元格,任何单元格,并运行这个macros:

 Sub HyperMaker() Dim subadd As String subadd = ActiveSheet.Name & "!" & Selection.Address(0, 0) ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ subadd, TextToDisplay:="P1,P2,P3" End Sub 

这放置在一个绝对无处的单元格的超链接!

接下来将这个事件macros放在工作表代码区域中:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) ary = Split(ActiveCell.Value, ",") MsgBox ary(0) & vbCrLf & ary(1) & vbCrLf & ary(2) End Sub 

现在,如果单击单元格,事件macros将被触发; 它会抓住单元格的参数,所以SOMETHING。

你当然会修改这个事件macros来执行你的POST操作。