Excel复制同一行中的不同单元格,粘贴到新工作表

我试图让工作簿复制单元格值到工作表,如果值=“是”,例如,列A包含时间和列的B到G有一个下拉框是/否。 如果单元格B2有“是”,那么它将把时间复制到从A2到Sheet4,C列中的下一个可用行的不同表格中,同样,如果G5具有“是”,则它将把时间从A5复制到下一个可用行在Sheet4,H列

我一直在试验下面的代码,我陷入了困境。 它似乎只是在工作,如果我有select“总览”表,我似乎无法让它移动,只有下降。

Sub Copy() Dim N As Long, i As Long, j As Long N = Cells(Rows.Count, "C").End(xlUp).Row j = 4 Set ws1 = Worksheets("Overview") Set ws2 = Worksheets("Sheet4") For i = 2 To N If ws1.Cells(i, "C").Value = "Yes" Then ws2.Cells(j, "A").Value = ws1.Cells(i, "B").Value j = j + 1 End If Next i End Sub 

尝试这个

 Sub Copy() Dim N As Long, i As Long, j As Long Set ws1 = Worksheets("Overview") Set ws2 = Worksheets("Sheet4") N = ws1.Cells(Rows.Count, "C").End(xlUp).Row j = 4 For Each cell In Range("B2:G" & ws1.Cells(Rows.Count, "G").End(xlUp).Row) If cell.Value = "Yes" Then ws2.Range("A" & j).Value = ws1.Range("A" & cell.Row).Value j = j + 1 End If Next cell End Sub 

只有当您select了总览表时,它才起作用,因为您已将N的值设置为活动表中的行数,而不是overview sheet(ws1) 。 并没有扫描所有的列,因为你的代码只写在C

希望以上解决您的问题