gpt4 book ai didi

vba - 从 HYPERLINK() 运行 VBA

转载 作者:行者123 更新时间:2023-12-03 01:59:46 25 4
gpt4 key购买 nike

我试图让我的用户从他们的 Excel 电子表格轻松发送电子邮件,他们喜欢将其用作数据输入和操作的前端。我的目的是写一个函数:

generateEmail(name, manager, cc)

并使其可以根据用户的需要调用该函数。

在此,Excel 调用 Outlook,创建一封新邮件,并转储包含要发送的格式化电子邮件的文本,其中将包含一些从当前正在处理的表中每行动态更改的值。这是 VBA 函数:

Function generateEmail(name, manager, cc)
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = "To Service Desk:" & vbNewLine & vbNewLine & _
"Please open a ticket for CS/oe/ns/telecom/dal to request a new extension. Please find the details attached:" & vbNewLine & vbNewLine & _
"Name: " & name & vbNewLine & _
"Manager: " & manager & vbNewLine & _
"CC: " & cc

On Error Resume Next
With OutMail
.To = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f272a233f2b2a3c240f3b2a3c3b612c2022" rel="noreferrer noopener nofollow">[email protected]</a>"
.cc = ""
.BCC = ""
.Subject = "New Extension Request"
.Body = strbody
.Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

End Function

然后,在我将其添加到的表格的最右列中,我创建一列链接:

=HYPERLINK(generateEmail(H2, I2, M2), "Generate Email")

其中 H2、I2 和 M2 是我需要注入(inject)到将生成的电子邮件中的值。用户还将拥有H3、I3、M3、H4、I4、M4...等数据。

这实际上按预期工作,但是当我使超链接显示在电子表格上时,它一旦 Excel 检测到鼠标悬停在链接上就会触发该事件。我希望使链接可点击,并仅在用户点击后才触发该功能

有什么办法可以做到这一点吗?

我的搜索结果是空的,基本上建议人们从 VBA 本身为每个单元格手动创建链接。由于用户存储的数据集会随着时间的推移而增长,因此我需要一种方法来在用户每次添加记录时创建新的“发送电子邮件”链接。

最佳答案

要仅在单击时运行该函数,您可以尝试输入子地址:

=HYPERLINK("#generateEmail(H2, I2, M2)", "Generate Email")

然后在代码中添加额外的一行以返回当前地址:

Function generateEmail(name, manager, cc)

Set generateEmail = Selection
'Paste Outlook Code Here

End Function

请注意,此方法不会在主 vba 线程上执行,因此要进行测试,您可以在代码中插入语句而不是单步执行,例如:

Range("A10:C10") = Array(name, manager, cc)

关于vba - 从 HYPERLINK() 运行 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com