我有一个超过100000个单元格的链接列表。
我必须给它们提供超链接,但在Excel中,每个工作表有66530个超链接的限制。
如何克服限制或如何使用VBA合并具有相等值的单元格?
Sub AddHyperlinks()
Dim myRange As Range
Set myRange = Range("A1")
Dim hText As Variant
Do Until IsEmpty(myRange)
hText = Application.VLookup(myRange.Value, Worksheets("Sheet2").Range("A:B"), 2, False)
If IsError(hText) Then
hText = ""
Else
ActiveSheet.Hyperlinks.Add Anchor:=myRange, Address:="http://" + hText, TextToDisplay:=myRange.Text
hText = ""
End If
Set myRange = myRange.Offset(1, 0)
Loop
End Sub
发布于 2017-01-16 16:09:49
只是常规的复制粘贴应该可以工作,但如果它不能工作,我可以更新示例(未测试)
Sub AddHyperlinks()
Dim rng As Range, rngFrom As Range, values, r
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("A1")
Set rngFrom = ThisWorkbook.Worksheets("Sheet2").Range("A:A")
rng.Worksheet.Hyperlinks.Delete ' remove all previous Hyperlinks
While rng(1) > ""
' resize the range to the same values
While rng(rng.Rows.Count + 1) = rng(1)
Set rng = rng.Resize(rng.Rows.Count + 1)
Wend
r = Application.Match(rng(1), rngFrom, 0)
If Not IsError(r) Then
values = rng.Value2 ' save the values
rngFrom(r, 2).Copy rng ' copy from the cell next to the match
rng.Value2 = values ' restore the values (not sure if it removes the links)
End If
Set rng = rng(rng.Rows.Count + 1) ' move to the next cell below
Wend
End Sub
发布于 2019-12-20 12:53:09
@Rory提到的解决方案是:在单元格中使用HYPERLINK函数通过公式模拟超链接。
=HYPERLINK(url, displaytext)
这有效地绕过了Excel对“硬编码”超链接的内置限制。在我遇到臭名昭著的错误1004之后,我对此进行了测试:
Application-defined or object-defined error
尝试在工作表中创建100k+超链接时。
发布于 2017-01-16 13:07:00
255个字符的限制适用于一个单元格的公式中可以放入的字符限制。一种常见的方法是将链接拆分成多个单元格,并使用公式将它们组合在一起。
=HYPERLINK(A1&A2,"Click Here")
https://stackoverflow.com/questions/41669690
复制相似问题