首页 > 解决方案 > 将超链接添加到一列

问题描述

我试图在第一列中创建超链接,条件是单元格中的值以“W”开头。

在我将脚本从 Sheet 对象移动到 ThisWorkbook 之前,它似乎有效。

从那时起,当我尝试从另一个工作表复制一些单元格并将它们粘贴到活动工作表时,我复制的所有内容都被粘贴为超链接,无论它是什么列或值。更重要的是,如果我尝试在第一个单元格链接的行中键入任何内容,则默认键入模式是超链接样式。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim KeyCells2 As Range
Set KeyCells2 = Range("A:A")

If Not Application.Intersect(KeyCells2, Range(Target.Address)) _
       Is Nothing Then
    On Error Resume Next
    If Target.Count = 1 Then 'this one was meant to be a fix but it didn't change a thing
        If Left(Target.Value, 1) = "W" Then
            link = "http://<mylink>" & Target.Value
            ActiveSheet.Hyperlinks.Add Target, link
        End If
    End If
End If
End Sub

标签: excelvbahyperlink

解决方案


试试这个,我想它会做你需要的:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim KeyCells2 As Range
    Dim targetcell As Range
    Set KeyCells2 = Application.Intersect(Sh.Range("A:A"), Target, Sh.UsedRange)
    If Not KeyCells2 Is Nothing Then
        For Each targetcell In KeyCells2
            If Left(targetcell.Value, 1) = "W" Then
                link = "http://my.link." & targetcell.Value
                Sh.Hyperlinks.Add Anchor:=targetcell, Address:=link
            End If
        Next
    End If
End Sub

推荐阅读