【问题标题】:Get hyperlink when looping trough cells循环遍历单元格时获取超链接
【发布时间】:2020-01-23 11:00:47
【问题描述】:

我有一个包含日期的列和包含一些信息的其他列。其他列之一是带有超链接的列。到达日期后,我想获取超链接并将其添加到字符串中,超链接是指向另一个 excel 文件的链接。我想通过邮件发送所有这些信息,并且超链接应该可以点击并打开 excel 文件。

除了超链接之外,我一切正常。 现在我有 2 个问题:

  • 这甚至可能吗?如果是,怎么做?
  • 我只能在电脑上打开链接,还是在手机上也可以访问? (手机只有outlook app,没有excel文件)

这是我目前所拥有的。

Dim nr As Integer
Dim nrString As String
Dim device As String
Dim link As Hyperlink
Dim subj As String
Dim msg As String

Sub Maillijst_verlopen_PO()

    Sheets("PO").Select
    For Each Cell In Range("o2", Range("o2").End(xlDown))
        If Cell.Value < Date And Cell.Value <> "" And Cell.Offset(0, 2) = "actief" Then
            nr = Cell.Offset(, -14).Value
            nrString = CStr(nr)
            device = Cell.Offset(0, -9).Value

            link= "<A href=" & Cell.Offset(0, -6).Value & ">test link</A>"

            subj = "nr " + nrString + ": " + device '+ " " + link
            msg = msg + vbCrLf + subj
        End If
    Next

    msg = "De volgende zaken hebben onderhoud nodig: " + vbCrLf + msg
    Call Mail_small_Text_Outlook
    msg = ""

End Sub


Sub Mail_small_Text_Outlook()

    Dim xOutApp As Object
    Dim xOutMail As Object

    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)

    With xOutMail
    .To = "....@h....."
    .CC = ""
    .BCC = ""
    .Subject = "PO verlopen"
    .Body = msg
    .Send
    End With

    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

【问题讨论】:

  • 您要在哪个单元格中添加超链接?应该在Cell.Offset(0, -6) 吗?
  • 超链接位于 cell.offset(0,-6) 我想把它从那里取出并添加到一个字符串中。
  • 如果你尝试hyperlink = "&lt;A href=""" &amp; Cell.Offset(0, -6).Value &amp; """&gt;test link&lt;/A&gt;"会怎样
  • 不起作用。它告诉我超链接 = 没有
  • @Martijn ---- 你想调用你的超链接变量link吗? Nothing 可以是分配给 Nothing 时的对象引用变量的值...未分配的字符串将读取为 "",这与 vbNullString 相同。如果要将字符串加载到变量中,则应将其声明为 String 我认为您的声明行不应为 Dim link As Hyperlink 而应为 Dim hyperlink As String,这完全取决于您尝试使用它的方式。 ..

标签: excel vba email hyperlink outlook


【解决方案1】:

您需要将Dim link As Hyperlink 更改为Dim hyperlink As String,然后您的超链接将作为字符串保存到您的hyperlink 变量中。

当然,您可以继续将其与其余部分连接起来,并在撤消评论时将其放在subj...

【讨论】:

  • 感谢您的回复。我最初将其称为链接而不是超链接以使其更易于理解,但是这样做使我更加困惑并且忘记了重命名变量。您的方法确实将单元格中的文本添加到我的字符串中,但它最终只是一个字符串,而不是可点击的超链接。
  • 您在问题中问为什么它没有将超链接分配给字符串变量?
  • 是的,我的问题是我无法将超链接添加到字符串。当我将邮件中的正文格式更改为 HTML 时,它会显示一个链接。所以你的方法有效,非常感谢
  • @Martijn --- 听起来很像,因为您发现 .HTMLBody 而不是 .Body 解决了另一个问题?
  • @Martijn --- 干得好。 Dorian 建议使用 HTML HyperLink Tag 并且您将其更改为 .HTMLBody 实际上是最重要的事情......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多