我有两本工作簿 . 工作簿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并让它复制我的 Value 正常 .

I.E.

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

结束子

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