我的excel文档中有两个超链接。
在Sheet1的A1单元格中,我写了公式=HYPERLINK("#'Sheet1'!A1","click")
。
在Sheet1上,在单元格A2中,我执行了我认为相同的操作,但是使用了交互式GUI。右键单击单元格A2 =>超链接=>放置在此文档中=>(键入单元格引用)A2。
我还写了一个很短的文章,所以当我单击这些超链接时,我会看到一个消息框。
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
MsgBox ActiveCell
End Sub
我已将此宏放置在Sheet1中。
当我单击单元格A2时,我得到一个MsgBox,其中的单元格值为。
但是,当我单击单元格A1时,没有任何反应。
为什么这两个链接的行为不同?如何在仍然使用公式的情况下使单元格A1的行为与单元格A2相同?
那为什么呢?
我有一个生成CSV文件的程序。为简单起见,结构看起来像这样。
f1,f2,compare
f3,f2,compare
这意味着很容易覆盖格式。
然后我打开此文件并将其另存为.xlsm
。我想拥有的是,当单击比较时它将运行一个宏。只要可以明显单击,就可以采用按钮或超链接或其他任何形式。
因此,我为什么选择=HYPERLINK("#'Sheet1'!A1","click")
的方法,因为很容易在列后增加数字并仍然显示它是可以明显点击的东西。
因此,以
格式获取CSV文件输出将是一个快速更改。f1,f2,"=HYPERLINK(""#'Sheet1'!C1"",""compare"")"
f3,f2,"=HYPERLINK(""#'Sheet1'!C2"",""compare"")"
这样做的目的是要使该工作簿可能具有超过一千行的内容尽可能自动化,所以我手动在每一行上选择一个比较按钮是不可行的
更新2
单击比较按钮时,将运行一个宏。该宏称为CompareFiles
。它从同一行但在a和b列中的单元格中获取值,将它们传递到shell命令中,然后打开一个用于比较文件的不同程序。
答案 0 :(得分:0)
您可以做的是选择所有需要链接的单元格,并使用Gary's Student的答案来完成。原始帖子可以找到here
heartbeat()
如果您像我一样使用Sub HyperAdder()
Dim r As Range, s As String
For Each r In Selection
If Len(r.Text) = 0 Then
s = "X"
Else
s = r.Text
End If
ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:=r.Parent.Name & "!" & r.Address(0, 0), TextToDisplay:=s
Next r
End Sub
文件,就我而言,要转换.vbs
并执行其他一些操作,则可以使用类似于以下内容的文件。
.csv