Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 超链接单击两次运行函数并给出修补程序错误_Excel_Vba - Fatal编程技术网

Excel 超链接单击两次运行函数并给出修补程序错误

Excel 超链接单击两次运行函数并给出修补程序错误,excel,vba,Excel,Vba,从标题你已经可以看出我的问题是什么 有人从我这边想: 我知道一定有办法通过创建布尔值或检查并隐藏错误来运行宏一次(我仍然不知道如何) 我想知道为什么宏运行两次。我猜这需要鼠标移动或者类似的想法 如何修复它 或者使用更好的方法捕获点击文本(我想唤起选择的改变/改变,我不太喜欢在同一单元格上使用FollowHyperlink和链接) 我正在使用的函数:=hypertexovÝ.ODKAZ(“LinkClick()”;“CLICK”) 英语版本:=HYPERLINK(#LinkClick()“;”CL

从标题你已经可以看出我的问题是什么

有人从我这边想:

我知道一定有办法通过创建布尔值或检查并隐藏错误来运行宏一次(我仍然不知道如何)

我想知道为什么宏运行两次。我猜这需要鼠标移动或者类似的想法

如何修复它

或者使用更好的方法捕获点击文本(我想唤起选择的改变/改变,我不太喜欢在同一单元格上使用FollowHyperlink和链接)

我正在使用的函数:
=hypertexovÝ.ODKAZ(“LinkClick()”;“CLICK”)

英语版本:
=HYPERLINK(#LinkClick()“;”CLICK”)

它应该是相同的函数。这与我的语言不同:


附:我的第一篇文章和我的英语不是最好的。谢谢您的回答。

您需要设置LinkClick=Selection以便返回包含函数的单元格,否则链接无效

根据公式
=HYPERLINK(“#LinkClick()”;“CLICK”)
需要一个
链接位置
作为第一个参数
超链接(链接位置,[友好名称])
。但是,因为您在那里有一个函数调用
“#LinkClick()”
函数需要返回一个有效的链接位置,而这正是
Set LinkClick=Selection
所做的,它将实际选择返回为链接位置,因此超链接选择已经选择的内容(意味着它什么也不做,但它不会抱怨无效的链接位置)


我没有那样尝试,我找到了这个帖子@Pᴇʜ我从他的代码中漏掉了这一部分。我通过反射使用了
Set LinkClick=Selection
,该函数按预期工作……我将删除我的上述注释。这一定是他的问题!哦,是的,谢谢。我复制粘贴了另一个函数,并用我的代码替换了该集(它没有将1添加到A1:D范围)。所以这是我的愚蠢。
Function LinkClick()

Range("A1").Value = Range("A1").Value + 1

End Function
Option Explicit

Public Function LinkClick() As Range
    Set LinkClick = Selection 'make sure a valid link location is returned in the function

    ActiveSheet.Range("A1").Value = ActiveSheet.Range("A1").Value + 1
End Function