2016-05-30 72 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,希望它有帮助!干杯。

相关问题