美文网首页
Excel中VBA自定义宏实现将文本自动转换为链接,然后将地址自

Excel中VBA自定义宏实现将文本自动转换为链接,然后将地址自

作者: 张利锋 | 来源:发表于2021-11-17 16:21 被阅读0次

    第一步:文本转url超链接地址

    Sub ConvertToHyperlinks()
    'Updateby Extendoffice
    Dim Rng As Range
    Dim WorkRng As Range
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    For Each Rng In WorkRng
        Application.ActiveSheet.Hyperlinks.Add Rng, Rng.Value
    Next
    End Sub
    

    第二步:将url超链接地址直接显示图片

    Sub LoadImage()
    Dim HLK As Hyperlink, Rng As Range
    For Each HLK In ActiveSheet.Hyperlinks  '循环活动工作表中的各个超链接
        If UCase(HLK.Address) Like "*.JPG" Or UCase(HLK.Address) Like "*.JPEG" Or UCase(HLK.Address) Like "*.PNG" Or UCase(HLK.Address) Like "*.GIF" Then  '如果链接的位置是jpg或gif图片(此处仅针对此两种图片类型,更多类型可以通过建立数组或字典或正则来判断)
            Set Rng = HLK.Parent.Offset(, 0)  '设定插入目标图片的位置
            With ActiveSheet.Pictures.Insert(HLK.Address)  '插入链接地址中的图片
                If .Height / .Width > Rng.Height / Rng.Width Then  '判断图片纵横比与单元格纵横比的比值以确定针对单元格缩放的比例
                    .Top = Rng.Top
                    .Left = Rng.Left + (Rng.Width - .Width * Rng.Height / .Height) / 2
                    .Width = .Width * Rng.Height / .Height
                    .Height = Rng.Height
                Else
                    .Left = Rng.Left
                    .Top = Rng.Top + (Rng.Height - .Height * Rng.Width / .Width) / 2
                    .Height = .Height * Rng.Width / .Width
                    .Width = Rng.Width
                End If
            End With
            HLK.Parent.Value = ""   '删除单元格的图片链接
        End If
    Next
    End Sub
    

    相关文章

      网友评论

          本文标题:Excel中VBA自定义宏实现将文本自动转换为链接,然后将地址自

          本文链接:https://www.haomeiwen.com/subject/sagltrtx.html