学以致用-VBA高效提取Excel单元格的超链接

本来以为Excel提供现成的函数来提取单元格的超链接,但似乎并没有。

在网上查到以下一段代码,用是可以用,但是效率比较低(不到500行数据,大概要等待数十秒才能出结果)。

Sub ExtractHL()
   Dim HL As Hyperlink
   For Each HL In ActiveSheet.Hyperlinks
       HL.Range.Offset(0, 1).Value = HL.Address
    Next
End Sub

好吧,该到发挥自己的VBA编程技能的时候了,通过将超链接先保存到数组,最后统一赋值给单元格,瞬间即可执行完毕。

当数据量比较大时(上万行甚至几十万行),两种方法的执行效率将会有天壤之别。

分享代码如下:

Sub 提取链接()
    Dim ArrayHL(0 To 500, 0 To 1) As String
    Dim i As Integer
    Dim usedRows As Integer
    
    usedRows = Worksheets("Excel函数").Range("A1048576").End(xlUp).Row
    
   
    For i = 1 To usedRows - 1
        ArrayHL(i - 1, 0) = Range("C" & i + 1).Hyperlinks(1).Address
    Next
    
    Worksheets("Excel函数").Range("D2").Resize(usedRows - 1, 1).Value = ArrayHL
End Sub

提取结果如下所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值