【问题标题】:'clicking' in cells containing hyperlinks to generate mailto在包含超链接的单元格中“单击”以生成邮件
【发布时间】:2019-11-15 08:05:43
【问题描述】:

我正在 Excel 中编写一个快速的 VBA 应用程序,用于办公室秘密圣诞老人活动。我的代码将在 A 列中获取名称列表,将它们复制并在 B 列中随机化它们并重复,直到参与者与自己配对的匹配项不存在。此外,我在 F 列中的单元格包含一个超链接,如下所示: (来自单元格 F10 的示例)

=HYPERLINK("mailto:" & A10 & "?subject=Shhhhh… Secret Santa" & "&body=The name of your receipient is:  " &B10, "Email")

所以现在我想要一个子程序来简单地向下滚动列 F 并“单击”每个超链接。 我尝试了一些我在网上找到的东西,但没有一个完全符合我的需要。我怀疑我的语法有问题,所以我什至不会给你带来乐趣。我已经有一段时间没有编码了:) 这“应该”只是一个简单的循环,但我需要中间的魔法线:

Sub Generate_Emails()
Dim lastsanta
lastsanta = ActiveSheet.UsedRange.Rows.Count
cur = 0
Do Until cur = lastsanta
------  Magic line that clicks Cells(cur, 6)
cur = cur + 1
Loop
End Sub

运行时,最终结果应该会弹出一堆已经填满目标和内容的电子邮件窗口,所以我需要做的就是在每个窗口中单击发送(仍在研究如何自动实现,但我认为Outlook 不允许这样做,因此人们不会发送垃圾邮件)

请帮忙。

【问题讨论】:

  • 第一点 - 没有第 0 行。
  • 第二点:这会让你被你的 ISP 列入黑名单,而不费吹灰之力:)
  • 你应该做什么(在你的一次性情况下)我认为是看看 Outlook 自动化是如何工作的。收集电子邮件地址并将它们放入密件抄送:字段。这将适用于一个合理的数字。如果有成千上万个电子邮件地址,请查看 MailChimp 等专用邮件服务。
  • 看看这个rondebruin.nl/win/s1/outlook/bmail5.htm,了解一些基本的 VBA 东西来执行
  • BigBen,是的,我知道没有 0。这只是一个拼凑的例子,表明我想使用索引循环遍历每个单元格以单击。对不起我的马虎

标签: excel vba


【解决方案1】:
For a = 1 To 10

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

    With OutMail
        .to = Cells(a, 1).Value
        .Subject = "Secret Santa 2"
        .Body = "Secret Santa info from another cell"
        .Send
    End With
Next

Set OutMail = Nothing
Set OutApp = Nothing

【讨论】:

  • @BigBen,确实如此。谢谢。
  • 但是Set OutApp 应该在循环之外。
  • 我会试一试,看看它是否会产生可用的结果。感谢您的建议。
  • 这段代码可以满足我的需要。谢谢。
猜你喜欢
  • 2019-09-21
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多