Excel VBA-自动创建空白单元格上的超链接

时间:2018-08-21 07:30:13

标签: excel vba excel-vba

我正在使用MS Office 2016 Pro Plus。我有一个启用了宏的工作簿,该工作簿具有到共享点列表的超级查询(PQ)连接。下面的代码旨在根据A列和B列中的单元格中的值自动刷新/创建超链接,因此从理论上讲,我可以单击链接并将其带到我感兴趣的SP列表项。

下面的代码可以正常工作,即每当我刷新PQ连接时,它都会创建链接BUT(这就是问题所在)...如果列表项的数量减少,则它仍然尝试在以前填充的单元格中的A和B列中创建超链接...但我不希望这样做。请参见下面的示例图片和后续代码:

问题示例:

enter image description here

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim cell As Range
Dim tmp As String
If Intersect(Range("A:A"), Target) Is Nothing Then Exit Sub

For Each cell In Target
    If cell.Column = 1 Then
        Application.EnableEvents = False
        tmp = cell.Value2
        cell.Parent.Hyperlinks.Add _
            Anchor:=Cells(cell.Row, 1), _
            Address:="<<My Shareopint List URL1>>/EditForm.aspx?ID=" & tmp, _
            TextToDisplay:=tmp
        Application.EnableEvents = True
    End If
Next cell

For Each cell In Target
    If cell.Column = 2 Then
        Application.EnableEvents = False
        tmp = cell.Value2
        cell.Parent.Hyperlinks.Add _
            Anchor:=Cells(cell.Row, 2), _
            Address:="<<My Shareopint list URL2>>" & tmp, _
            TextToDisplay:=tmp
        Application.EnableEvents = True
    End If
Next cell

Columns("A:B").Select
Selection.ColumnWidth = 10

End Sub

任何想法都将受到欢迎。

1 个答案:

答案 0 :(得分:1)

在添加链接之前测试每个单元格是否包含值:

    If cell.Column = 1 And Not IsEmpty(cell) Then