如果单元格值与另一个列表中的条目匹配,则复制链接

时间:2017-01-13 03:21:58

标签: excel vba excel-vba

有一个包含文件名块的列,并且有一个包含键和值的列:

First and second lists

我必须将链接“www.111.com”分配给所有AAAAA.jpg区域,将“www.222.com”分配给BBBBB.jpg区域等。

结果:

怎么可以这样做?

1 个答案:

答案 0 :(得分:0)

我认为以下VBA代码会对您有所帮助。它执行以下步骤:

  1. 声明范围(“myRange”)并将其设置为单元格A1(.JPG列表的顶部单元格)
  2. 声明变体(“hText”)
  3. 在D:E的查找表中查找“myRange”中的值(更改为适合您的工作簿)。将值存储在“hText”
  4. 检查hText是否是错误(即,在查找表中找不到该值)。如果是错误,请跳过单元格。如果不是错误,请转到步骤5.
  5. 添加指向当前“myRange”单元格的超链接。使用hText作为地址,使用当前“myRange”单元格的文本作为显示的文本。
  6. 将“myRange”移动到下一个单元格。循环步骤3-6,直到它到达一个空单元格。
  7. 请注意,当循环到达空单元格时循环将停止,因此如果列表中存在间隙,则它将无法到达底部。另请注意,将跳过查找表中未找到的任何值(未添加超链接)。

    选择带有.JPG列表的工作表时运行此代码。

    Sub AddHyperlinks()
    
    Dim myRange As Range
    Set myRange = Range("A1")
    
    Dim hText As Variant
    
    Do Until IsEmpty(myRange)
    
        hText = Application.VLookup(myRange.Value, Worksheets("Sheet1").Range("D:E"), 2, False)
    
        If IsError(hText) Then
            hText = ""
        Else
            ActiveSheet.Hyperlinks.Add Anchor:=myRange, Address:=hText, TextToDisplay:=myRange.Text
            hText = ""
        End If
    
        Set myRange = myRange.Offset(1, 0)
    Loop
    
    End Sub