2016-05-30 164 views
0

我有以下代碼將從「數據」工作表中複製/粘貼一些列,並粘貼到我在名爲「KomKo」的主表中指定的列中的下一個空列」。如果else語句在複製和粘貼單元格值

Dim copySheet As Worksheet 
Dim pasteSheet As Worksheet 

Set copySheet = Worksheets("data") 
Set pasteSheet = Worksheets("KoMKo") 
lRow = copySheet.Cells(copySheet.Rows.Count, 1).End(xlUp).Row 

With copySheet.Range("BX2:BX" & lRow) 
pasteSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value 
End With 

現在我想爲另一列添加if條件;這應該說「如果工作表中的列U的數據」單元格值爲「8636」,那麼這些值應粘貼到工作表「KomKo」(貼圖)中的H列;到下一行,因爲我在上面的代碼中使用了「with 「部分。

品(如果在H列的值不爲8636),那麼它應該粘貼此列G列在工作表內的值‘KomKo’(pastesheet)具有相同的優先以上一次。

我怎樣才能做到這一點?

回答

0

所以,我想出了以下使用建議一個if-then一個循環之內。我認爲這是接近你想要什麼......

Sub try6() 

Dim ws As Worksheet 
Dim ws2 As Worksheet 

Dim x As Range 

Set ws = Worksheets("data") 
Set ws2 = Worksheets("KomKo") 

For Each x In ws.Range("C1:C100") 
    If x.Value = 8636 Then 
    ws2.Range("H:H").Value = ws.Cells(Rows.Count, "A").Value 
     ElseIf x <> 8636 Then 
     ws2.Range("G:G").Value = ws.Range(Rows.Count, "B").Value 
     End If 
    Next x 

End Sub 

測試它,執行需要一段時間。我想說,設置一個像A10000這樣的動態範圍,然後直接複製它,而不需要測試是否有被複制範圍內的值。

您也可以使用Select方法達到目的,並複製選擇內容 - 從個人經歷中,我已經與它混合成功,並且我看到有人建議不要在此處使用它。

這些是我的.02,希望它有幫助!乾杯。