检查单元格是否包含 link in Excel

Check whether a cell contains a link in Excel

我正在尝试检查 A 列中的值是否包含 link,如果为真,我想在 B 列中键入文本,例如:link . 我有很多记录(10 000 条),因此手动执行此操作会花费很多时间。谢谢

这里:

Sub Links()
    Dim lnk As Hyperlink, lnks As Hyperlinks
    Set lnks = Range("A:A").Hyperlinks
    For i = 1 To lnks.Count
        Set lnk = lnks(i)
        lnk.Range.Value = "Link"
    Next
End Sub

如果您想使用上述过程,您需要阅读更多关于 VBA 的内容。也请始终首先分享您的研究,至少分享一个代码存根。这很简单,因此例外。

我设法找到了一个公式,而不是 VBA。

我用了=IF(HYPERLINK(A1>0), "WEB", "")

谢谢大家的宝贵时间。 :)

有一个可行的公式,但它基于单元格中字符的长度。例如,由于路径名,超链接通常包含更多字符。例如,如果单元格中的字符数始终少于 30,则可以编写公式

 =If(Len(Cell("Filename",A1))>30,"True","False")

如果单元格是超链接,公式将 return "True"。 此公式假定 Excel 文件存储在子文件夹中,其中引用了每个文件夹名称,这增加了超链接的长度。

  • 将文件另存为 .xlsm 以允许使用宏
  • A​​lt + F11 打开 Visual Basic
  • 插入 -> 模块
  • 粘贴这个函数,它returns范围内的超链接数:
Function IsHyperlink(r As Range) As Integer
IsHyperlink = r.Hyperlinks.Count
End Function
  • A​​lt+Q

  • 使用带有 if 条件的新函数来显示文本:

     =IF(IsHyperlink(A1),"LINK","NO LINK")

没有VBA的近似解:

=AND(ISREF(A1),ISNUMBER(SEARCH("http",A1,1)))

它是基于要求两个条件:

  1. 单元格中有引用(它适用于超links和内部引用)
  2. 单元格文本(link)包含字符串“http”,以涵盖 http 和 https