将多列值从一个工作簿复制到另一个工作簿上的相应工作表

时间:2017-11-27 10:24:10

标签: excel vba excel-vba

我一直试图让这个工作,但我不知道如何让它工作,任何帮助将不胜感激。

我有2个工作簿,工作簿1有多个工作表,每个工作簿都标有不同的名称。工作簿2有一个摘要表,其中包含每个人的一列值。 我想要实现的是:

    工作簿1上的
  1. 检查工作表名称

  2. 切换到工作簿2并找到具有相同名称的列。所有名称都在第6行,从第I列到DD。此外,每个名称都在2个单元格中合并在一起,我不知道这是否会影响它。

  3. 找到第6行的名称后,我希望它下移6个单元格,然后复制该值。

  4. 切换回工作簿1并将其粘贴到单元格B37中。

  5. 重复此过程,但这一次下去7个单元格,复制该值并将其粘贴到工作簿1的单元格B102中。我有大约30个单元格要复制并过去。

  6. 完成后,再次为工作簿1上的下一个工作表重复所有内容。

  7. 另一个重要问题是,工作簿1上并不存在工作簿1上的所有工作表名称,我觉得下面的代码一旦找不到匹配就会抛出错误。因此,我希望能够跳过工作簿1上的工作表,它在工作簿2摘要表中找不到匹配的名称。

    我已经输入了下面的代码,但我一直收到错误"找不到方法或数据成员"

    Sub Measures()
    
        Dim wb1 As Workbook
        Dim Sht As Worksheet
        Dim Rng, Rng2 As Range
        Dim wb2 As Workbook
        Dim cell As Range
        Dim ws As Worksheet
    
        Set wb1 = ThisWorkbook
        Set wb2 = Workbooks("November Stream 1.xlsm")
        Set Sht = wb1.Worksheets("Summary")
        Set Rng = Sht.Range("A6:A" & Sht.Cells(Sht.Column.Count, "A").End(xlUp).Column)
    
        For Each cell In Rng
            Set ws = wb2.Sheets(cell.Text)
            ws.Range("B37").Value = cell.Offset(6, 0).Value
            ws.Range("B102").Value = cell.Offset(7, 0).Value
        Next cell
    End Sub
    

    感谢您的帮助!

0 个答案:

没有答案