如果值="是"我试图让工作簿将单元格值复制到工作表,例如,A列包含时间,列B到G有一个是/否的下拉框。如果Cell B2为Yes,那么它将时间复制到另一个工作表中,从A2到Sheet4,C列中的下一个可用行,如果G5有"是"然后它将时间从A5复制到Sheet4,Column H中的下一个可用行
我一直在尝试使用以下代码,而且我遇到了问题。如果我有"概述"它似乎只能工作。选择了表单,我似乎无法让它移动,只能向下移动。
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
答案 0 :(得分:1)
试试这个
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
只有选择了“概览”工作表才有效,因为您已将N的值设置为活动表中的行数而不是overview sheet(ws1)
。并且它没有扫描所有列,因为您的代码仅针对列C
希望以上解决您的问题