【问题标题】:Excel VBA - Automatic Creation of Hyperlinks occurring on blank cellsExcel VBA - 在空白单元格上自动创建超链接
【发布时间】:2018-08-21 15:35:53
【问题描述】:

我使用的是 MS Office 2016 Pro Plus。我有一个启用宏的工作簿,它具有与共享点列表的 Power Query (PQ) 连接。以下代码旨在根据 A 列和 B 列中单元格内的值自动刷新/创建超链接,因此理论上,我可以单击链接,它们会将我带到我感兴趣的列表 SP 列表项。

下面的代码有效,因为每当我刷新 PQ 连接时,它都会创建链接但是(这就是问题所在)...如果列表项的数量减少,它仍然尝试在先前填写的单元格中的 A 列和 B 列中创建超链接......但我不希望它这样做。请参阅下面的示例图片和后续代码:

问题示例:

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

任何想法都将受到欢迎。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢!完美运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 2014-01-18
    • 2016-05-21
    相关资源
    最近更新 更多