我正在尝试检查 A 列中的值是否包含链接,如果为真,我想在 B 列中键入文本,例如:链接。 我有很多记录(10 000),因此手动执行此操作将花费大量时间。谢谢。
函数 IsHyperlink(r As Range) As Integer IsHyperlink = r.Hyperlinks.Count 结束功能
Alt+Q
使用带有 if 条件的新函数来显示文本:
=IF(IsHyperlink(A1),"链接","无链接")
这里:
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 的更多内容。还请始终首先分享您的研究成果,并至少分享一个代码存根。这很简单,因此是例外。
有一个可行的公式,但它基于单元格中字符的长度。例如,由于路径名的原因,超链接通常包含更多字符。例如,如果单元格中的字符数始终小于 30,那么您可以编写公式
=If(Len(Cell("Filename",A1))>30,"True","False")
如果单元格是超链接,公式将返回“True”。 此公式假设 Excel 文件存储在子文件夹中,其中引用了每个文件夹名称,这会增加超链接的长度。
无需 VBA 的近似解决方案:
=AND(ISREF(A1),ISNUMBER(SEARCH("http",A1,1)))
它基于要求两个条件:
由于链接(如果我们谈论的是链接,而不是超链接)是公式,因此这应该有效(除非您也有没有链接的公式):
=IF(ISFORMULA(A1),"LINK","")
我设法找到了一个公式,而不是在 VBA 上。
我用过
=IF(HYPERLINK(A1>0), "WEB", "")
感谢大家抽出时间。 :)