繁体   English   中英

根据多个条件从一张纸复制到另一张工作簿VBA Excel

[英]Copy from one sheet to another workbook based on multiple criteria VBA Excel

我有两本不同的工作簿,我想从其中一本基于多个条件复制某些值。

在此示例中,我将调用每个工作簿wb1和wb2。 在文章的结尾将有共享的wb链接作为示例,以使外观更加清晰。

所以在wb1中,我有一个名称列表,在wb2中也有自己的工作表。 当我打开wb1时,我想将名为“ NPS”的单元格下的值复制到wb2中具有相同名称的每个工作表中。在wb2中,我有不同的月份和一些其他的变量,必须手动添加。 因此,我要执行的操作是将NPS的值复制到NPS下的数据,并将其与wb1中也提到的同一个月相匹配。

到目前为止,我所拥有的是这段代码,但是它并没有真正实现。由于我在这部分上获得了“超出范围的订阅”,因此设置sh2 = wb2.Sheets(c.Value)。 我的猜测是,即使它的名称相同,也无法通过该值来识别工作表。

Sub NPS()
Dim sh1 As Worksheet, sh2 As Worksheet, c As Range, wb2 As Workbook, fn As Range
Set sh1 = ThisWorkbook.ActiveSheet
Set wb2 = Workbooks.Open("F:\Excel\Chef\NPS Samtal 777 agentnivå.xlsx")
    For Each c In sh1.Range("C8", sh1.Cells(Rows.Count, 3).End(xlUp))
        Set sh2 = wb2.Sheets(c.Value)
        Set fn = sh2.Rows(24).Find(sh1.Range("B5").Value, , xlValues, xlWhole)
        If Not fn Is Nothing Then
               fn.Offset(1) = sh1.Range("E5").Value
        End If
    Next
End Sub

WB1: https//docs.google.com/spreadsheets/d/14CyC2CQWWH-Bxifw2EBni0Uj2YjlN-kIUVki2rle3LA/edit#gid=1398323909

WB2: https ://docs.google.com/spreadsheets/d/1vcfnluE_PSm5dEEeHuBPA9XRoP-VPQRk3YDE7ONS-NE/edit usp = sharing

如果有人有任何建议,我将非常高兴。

//关于丹尼尔

似乎Excel在错误的文件中寻找工作表。 您需要在插入值之前激活正确的工作簿。 像这样:

Sub NPS()
Dim sh1 As Worksheet, sh2 As Worksheet, c As Range, wb2 As Workbook, fn As Range
Set sh1 = ThisWorkbook.ActiveSheet
Set wb2 = Workbooks.Open("F:\Excel\Chef\NPS Samtal 777 agentnivå.xlsx")
    For Each c In sh1.Range("C8", sh1.Cells(Rows.Count, 3).End(xlUp))
         wb2.Activate       
         Set sh2 = wb2.Sheets(c.Value)
         Set fn = sh2.Rows(24).Find(sh1.Range("B5").Value, , xlValues, xlWhole)
         If Not fn Is Nothing Then
                fn.Offset(1) = sh1.Range("E5").Value
         End If
     Next
End Sub

附带说明:ppsTest文件中的工作表未对齐(示例1中的NPS -tal在不同的行中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM