【发布时间】:2016-01-28 18:44:04
【问题描述】:
我有两个工作表正在使用长序列号作为单元格值。一张表 (Sheet1) 包含每个单独序列号的列表,这些序列号超链接到引用该项目的网页。此列表的范围为 A1:A31。
第二张表 (Sheet2) 有大量相同序列号的列表,但在 G1:G102 范围内。不同的是,这个列表没有超链接,序列号有时会出现多次。还有一些区域的单元格是空白的,因此它将连续的数据列分开。
我基本上想编写一个宏,它采用 Sheet1 中的第一个列表,并且对于每个单元格,它将它与 Sheet2 列 G 中的每个单元格进行比较。然后,如果值匹配,我想复制超链接单元格从工作表 1 并将其粘贴到与工作表 2 中具有相同值的单元格。因此,Sheet2 列 G 现在有一个完整填充的超链接序列号列表。
谁能帮我解决这个问题?这是我到目前为止所拥有的......似乎不起作用:
Sub CopyHyperlinks()
Dim cell As Excel.Range
Dim myRange As Excel.Range
Dim newRange As Excel.Range
Set myRange = Excel.ThisWorkbook.Sheets("Contents").Range("A1:A31")
Set newRange = Excel.ThisWorkbook.Sheets("Sheet1").Range("G1:G102")
For Each cell In myRange
If myRange.Cells.Value = newRange.Cells.Value Then newRange.Cells.Value = myRange.Cells.Value
Next cell
End Sub'
【问题讨论】:
-
除了序列号不同之外,url是一样的吗? (我在问,因为如果是这种情况,您只能使用公式来执行此操作)。更好的是,请发布两个数据集的屏幕截图。这会有很大帮助。
-
请检查HYPERLINK-函数。它可能会满足您的所有需求
-
您正在使用
For Each cell in myRange,但实际上从未使用过Cell。不要将Cells与您的cell变量混淆。尝试只做If .cel.value =,但随后您需要修复newRange.Cells.Value,以合并cell。您是否只想查看myRange是否有一个单元格位于整个newRange工作表中? -
我不知道如何发布图片:/谢谢你们的建议,但基本上我想通过 newRange (这有尚未超链接的序列号)并将这些单元格替换为myRange 中的超链接等价物。
-
例如,myRange 可能有一个带有超链接的值为 12345 的单元格。 newRange 可能有一个值为 12345 的单元格,它只是一个值,而不是超链接。如何比较这两个数据集,以及在哪里匹配,将非超链接单元格替换为超链接单元格。我知道还有其他功能可以做到这一点,我只是想知道是否有人知道这种具体的做法。谢谢! :)