在用户窗体VBA中插入超链接
我使用userform在excel中创建了一个欢迎便笺,每当我打开工作簿时,它都会显示6秒钟。我在那个用户表单上插入了一个超链接。但这个超链接不起作用。 我在该标签中使用了以下代码在用户窗体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
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。对象变量或未设置块变量