我正在使用MS Office 2016 Pro Plus。我有一个启用了宏的工作簿,该工作簿具有到共享点列表的超级查询(PQ)连接。下面的代码旨在根据A列和B列中的单元格中的值自动刷新/创建超链接,因此从理论上讲,我可以单击链接并将其带到我感兴趣的SP列表项。>
下面的代码可以正常工作,即每当我刷新PQ连接时,它都会创建链接BUT(这就是问题所在)...如果列表项的数量减少,则它仍然尝试在以前填充的单元格中的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
任何想法都将受到欢迎。
答案 0 :(得分:1)
在添加链接之前测试每个单元格是否包含值:
If cell.Column = 1 And Not IsEmpty(cell) Then