VBA将单元格复制到其中单元格具有相同值的另一个工作表

时间:2016-01-28 18:44:04

标签: excel vba excel-vba

我有两个工作表我正在使用长序列号作为单元格值。一张(Sheet1)有一个超链接到引用该项目的网页的每个序列号的列表。此列表的范围为A1:A31。

第二张表(Sheet2)有相同序列号的大量列表,但在G1:G102范围内。不同之处在于此列表没有超链接,序列号有时会多次显示。还有一些区域的单元格是空白的,因此它会分割连续的数据列。

我基本上想要编写一个获取Sheet1中第一个列表的宏,并且对于每个单元格,它将它与Sheet2列G中的每个单元格进行比较。然后,如果值匹配,我想复制超链接的单元格从Sheet 1中将其粘贴到Sheet2中具有相同值的单元格中。因此,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'

1 个答案:

答案 0 :(得分:0)

this little function。把这个:

Function GetHyperLinkAddress(rng As Range) As String
Dim hl As Hyperlink
For Each hl In rng.Parent.Hyperlinks
    If hl.Range.Address = rng.Address Then
        GetHyperLinkAddress = hl.Address
        Exit Function
    End If
Next hl
GetHyperLinkAddress = "Not Found"
End Function

在一个模块中。在电子表格中,添加

=GetHyperLinkAddress(Cell#)

带有超链接的单元格旁边。然后你可以使用vlookup来匹配。