2015-03-19 73 views
0

如果值=「是」,例如,列A包含時間和列的B,我試圖獲取工作簿以將單元格值複製到工作表到G有一個下拉框是/否。如果單元格B2具有「是」,那麼它會將時間複製到另一張從A2到Sheet4列C中的下一個可用行,如果G5具有「是」,則它會將時間從A5複製到下一個可用行在Sheet4,H列Excel複製同一行中的不同單元格,粘貼到一個新工作表

我一直在試驗下面的代碼,並且我陷入困境。它似乎只是在工作,如果我有選擇「總覽」表,我似乎無法讓它移動,只有下降。

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 

回答

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的值是計算行數在activesheet而非overview sheet(ws1)。並且它不掃描所有列作爲你的代碼只列C

希望寫在上面解決您的問題

+0

可惜我無法得到一個工作。我想我只是讓我的代碼變得很好而且很混亂,並且爲每一列提供5個不同的宏,並調用一個宏來依次運行它們,直到找到更好的解決方案。 – Cr1kk0 2015-03-19 08:25:05

+0

你能突出顯示你所得到的錯誤嗎?正如我測試,它對我來說工作得很好。 – izzymo 2015-03-19 13:43:43

相關問題