如果工作簿A上的单元格与工作簿B上的单元格匹配,则vba复制值是多少?

时间:2017-01-13 11:37:36

标签: excel vba

我有两本工作簿。工作簿A将被视为ThisWorkbook / ActiveWorkbook。

工作簿A(ActiveWorkbook)

Cell C5 = 555    
Cell U20 = 1234

和工作簿B,文件名总是不同的,如:

Deluxe Volumes
Xmas Volumes

但总是以“卷”这个词结束。

工作簿B :(动态名称)Volumes.xls

Column D      Column P
555           1234
111
222

我正在尝试从工作簿A复制单元格U20中的值,其中工作簿A中单元格C5中的值与工作簿B上的列D匹配。

如果值匹配,则在P列中,在该行上,我想在工作簿A的单元格u20中添加我的值。

我有这个代码,我是从互联网上获得的,我是VBA的新手,所以它可能都错了,但我不知道如何通过使用工作簿的最后一个字符来引用工作簿B.并让它正确地复制我的价值。

即。

Set w2 = Workbooks("*volumes.xls").Sheets(1)

Sub UpdateW2()     Dim Dic As Object,key As Variant,oCell As Range,i&     Dim w1 As Worksheet,w2 As Worksheet

Set Dic = CreateObject("Scripting.Dictionary")
Set w1 = ThisWorkbook.Sheets(1)
Set w2 = Set w2 = Workbooks("*volumes.xls").Sheets(1)

i = w1.Cells.SpecialCells(xlCellTypeLastCell).Row

For Each oCell In w1.Range("C5")
    If Not Dic.exists(oCell.Value) Then
        Dic.Add oCell.Value, Range("U20").Value
    End If
Next

i = w2.Cells.SpecialCells(xlCellTypeLastCell).Row

For Each oCell In w2.Range("D2:D" & i)
    For Each key In Dic
        If oCell.Value = key Then
            oCell.Offset(, 12).Value = Dic(key)
        End If
    Next
Next

End Sub

有人可以告诉我这样做的正确方法吗?感谢

0 个答案:

没有答案
相关问题