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
在用户窗体VBA中插入超链接_Vba_Excel_Userform - Fatal编程技术网

在用户窗体VBA中插入超链接

在用户窗体VBA中插入超链接,vba,excel,userform,Vba,Excel,Userform,我使用userform在excel中创建了一个欢迎便笺,每当我打开工作簿时,它都会显示6秒钟。我在那个用户表单上插入了一个超链接。但这个超链接不起作用。 我在该标签中使用了以下代码 Private Sub Label2_Click() Link = "https://www.healthindiatpa.com/" On Error GoTo NoCanDo ActiveWorkbook.FollowHyperlink Address:=Link

我使用userform在excel中创建了一个欢迎便笺,每当我打开工作簿时,它都会显示6秒钟。我在那个用户表单上插入了一个超链接。但这个超链接不起作用。 我在该标签中使用了以下代码

Private Sub Label2_Click()

    Link = "https://www.healthindiatpa.com/"

    On Error GoTo NoCanDo

    ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True

    Unload Me

    Exit Sub

NoCanDo:

    MsgBox "Cannot open " & Link

End Sub
但它不起作用。当工作簿打开时,无论何时单击该标签或超链接,网站都不会打开。超链接不起作用。

此代码段中出现了问题:

Private Sub UserForm_Activate()
Application.Wait (Now + TimeValue("00:00:01"))
UserForm1.Label1.Caption = "Loading Data..."
UserForm1.Repaint
Application.Wait (Now + TimeValue("00:00:03"))
UserForm1.Label1.Caption = "Please make sure Database file is open..."
UserForm1.Repaint
Application.Wait (Now + TimeValue("00:00:02"))
UserForm1.Label1.Caption = "Opening..."
UserForm1.Repaint
Application.Wait (Now + TimeValue("00:00:01"))
Unload UserForm1
End Sub
应用程序正在等待,因此不接受任何输入。这就是事件不会触发的原因,因为在等待之后,它会立即继续执行下一行,即标签更改和重新绘制

您可以通过如下更改此例程来修复它:

Private Sub UserForm_Activate()
Application.Wait (Now + TimeValue("00:00:01"))
DoEvents 'Allow for the label click to trigger!!!
UserForm1.Label1.Caption = "Loading Data..."
UserForm1.Repaint
Application.Wait (Now + TimeValue("00:00:03"))
DoEvents 'Allow for the label click to trigger!!!
UserForm1.Label1.Caption = "Please make sure Database file is open..."
UserForm1.Repaint
Application.Wait (Now + TimeValue("00:00:02"))
DoEvents 'Allow for the label click to trigger!!!
UserForm1.Label1.Caption = "Opening..."
UserForm1.Repaint
Application.Wait (Now + TimeValue("00:00:01"))
DoEvents 'Allow for the label click to trigger!!!
Unload UserForm1
End Sub
它不是很干净,但通过这种方式,您可以输入事件代码并修复问题,而无需进行其他更改

编辑: 这个答案告诉您如何捕获事件并使其工作,这就是问题所在。下面超链接的问题是第二件事:表示该方法将根据您传递的目标打开相应的程序

因为代码是正确的,并且触发了事件,所以这很可能是一个与VBA/your问题无关的完全不同的问题


在我的机器W7+Excel2016上,代码执行得非常完美,点击链接可以始终如一地工作

到底是什么不起作用?此处执行良好。超链接不起作用。每当我单击超链接时,网站都无法打开。您是否尝试过使用F8执行,以查看上面的事件是否被触发?你是否看到MsgBox上写着“无法打开https…”?我尝试过..用户表单正在执行..但当我单击该用户表单上的超链接时..什么都没有发生。那么你的链接不在Label2中。通过单击标签并在“属性”窗口中检查名称,找出它是哪个标签。接下来更改行Private-Sub-Label2\u Click以表示Private-Sub-LabelName\u Click,这样就可以连接到正确标签的Click事件。或者,在userform的编辑器中,双击链接并将代码粘贴到新生成的子项中。请告诉我它是否有效。不客气。另外,如果您可以在问题中添加额外的代码并删除代码注释,那就太好了。否则,我会将此标记为适度。还有一个问题,伙计..有时链接正在打开,但有时消息框弹出,无法打开网站..该做什么只有在我签入vba编辑器时才起作用…但在打开工作簿时实时意味着它不起作用。问一个新问题-并对浏览器进行故障排除,请检查您的Internet连接并检查URL的可用性。打开它的代码是正确的。我已经尝试了以上所有操作。一切都很好。它显示运行时错误91。对象变量或未设置块变量