2016-09-10 73 views
0

VBA noob here,我需要从Sheet1中的特定列中复制并粘贴到基于Sheet2的特定列在2个条件下。详细信息(它不是一个代码):VBA代码复制特定列中的单元格并将其粘贴(值)到另一个表单上的特定列中的单元格基于条件

i=2 & j=4 

IF Sheet1.Cells(i, 4)<>0 and Sheet1.Cells(i, 49)<>0, Type "FK" in _ 
Sheet2.Cells(j, 1), Type "OF" in Sheet2.Cells(j + 1, 1), copy the following 

Copy from **Sheet1**  Paste in **Sheet2** 
Cells(i, 52)    Cells(j, 2) 
Cells(i, 51)    Cells(j, 3) 
Cells(i, 4)    Cells(j, 4) 
Cells(i, 1)    Cells(j, 5) 
Cells(i, 53)    Cells(j, 6) 
Cells(i, 7)    Cells(j, 7) 
Cells(i, 10)    Cells(j, 8) 
Cells(i, 5)    Cells(j, 9) 
Cells(i, 6)    Cells(j, 10) 
Cells(i, 49)    Cells(j, 11) 
Cells(i, 50)    Cells(j, 12) 
Cells(i, 51)    Cells(j, 13) 
Cells(i, 51)    Cells(j, 15) 
Cells(i, 51)    Cells(j, 16) 
Cells(i, 51)    Cells(j, 17) 
Cells(i, 19)    Cells(j + 1, 2) 
Cells(i, 20)    Cells(j + 1, 3) 
Cells(i, 44)    Cells(j + 1, 4) 
Cells(i, 28)    Cells(j + 1, 5) 
Cells(i, 30)    Cells(j + 1, 6) 
Cells(i, 37)    Cells(j + 1, 7) 
Cells(i, 41)    Cells(j + 1, 8) 
Cells(i, 46)    Cells(j + 1, 9) 
Cells(i, 51)    Cells(j + 1, 10) 
Cells(i, 51)    Cells(j + 1, 11) 

next i 

IF Sheet1.Cells(i, 4)<>0 and Sheet1.Cells(i, 49)=0, Type "OF" in _ 
Sheet2.Cells(j, 1), copy the following 

Copy from **Sheet1** Paste in **Sheet2** 
Cells(i, 19)   Cells(j, 2) 
Cells(i, 20)   Cells(j, 3) 
Cells(i, 44)   Cells(j, 4) 
Cells(i, 28)   Cells(j, 5) 
Cells(i, 30)   Cells(j, 6) 
Cells(i, 37)   Cells(j, 7) 
Cells(i, 41)   Cells(j, 8) 
Cells(i, 46)   Cells(j, 9) 
Cells(i, 51)   Cells(j, 10) 
Cells(i, 51)   Cells(j, 11) 

next i 

Else, next i (start again for i + 1) 

所以,基本上我想要做的是,如果条件1为真,我会从1行数据复制并粘贴到另一接下来的2个空行片。同时,如果条件2为真,则从1行复制数据并将其粘贴到另一个表单中的下一个空行。很抱歉,很长的文章,不知道任何其他方式来解释它。谢谢大家。

+0

您的代码或不基于解释的做事行列基础? –

回答

0

这是做你想要的东西:

Sub copyABunchOfThings() 

    Dim i As Integer, j As Integer 
    i = 2 
    j = 4 

    For i = 1 To 10 'Change 1 and 10 into your numbers. 

    If Sheet1.Cells(i, 4) <> 0 And Sheet1.Cells(i, 49) <> 0 Then 
     Sheet2.Cells(j, 1).Value = "FK" 
     Sheet2.Cells(j + 1, 1).Value = "OF" 

     'Put in **Sheet 2** what is in **Sheet 1** 
     Sheet2.Cells(j, 2) = Sheet1.Cells(i, 52) 
     Sheet2.Cells(j, 3) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j, 4) = Sheet1.Cells(i, 4) 
     Sheet2.Cells(j, 5) = Sheet1.Cells(i, 1) 
     Sheet2.Cells(j, 6) = Sheet1.Cells(i, 53) 
     Sheet2.Cells(j, 7) = Sheet1.Cells(i, 7) 
     Sheet2.Cells(j, 8) = Sheet1.Cells(i, 10) 
     Sheet2.Cells(j, 9) = Sheet1.Cells(i, 5) 
     Sheet2.Cells(j, 10) = Sheet1.Cells(i, 6) 
     Sheet2.Cells(j, 11) = Sheet1.Cells(i, 49) 
     Sheet2.Cells(j, 12) = Sheet1.Cells(i, 50) 
     Sheet2.Cells(j, 13) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j, 15) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j, 16) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j, 17) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j + 1, 2) = Sheet1.Cells(i, 19) 
     Sheet2.Cells(j + 1, 3) = Sheet1.Cells(i, 20) 
     Sheet2.Cells(j + 1, 4) = Sheet1.Cells(i, 44) 
     Sheet2.Cells(j + 1, 5) = Sheet1.Cells(i, 28) 
     Sheet2.Cells(j + 1, 6) = Sheet1.Cells(i, 30) 
     Sheet2.Cells(j + 1, 7) = Sheet1.Cells(i, 37) 
     Sheet2.Cells(j + 1, 8) = Sheet1.Cells(i, 41) 
     Sheet2.Cells(j + 1, 9) = Sheet1.Cells(i, 46) 
     Sheet2.Cells(j + 1, 10) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j + 1, 11) = Sheet1.Cells(i, 51) 

    ElseIf Sheet1.Cells(i, 4) <> 0 And Sheet1.Cells(i, 49) = 0 Then 
     Sheet2.Cells(j, 1) = "OF" 

     'Put in **Sheet 2** what is in **Sheet 1** 
     Sheet2.Cells(j, 2) = Sheet1.Cells(i, 19) 
     Sheet2.Cells(j, 3) = Sheet1.Cells(i, 20) 
     Sheet2.Cells(j, 4) = Sheet1.Cells(i, 44) 
     Sheet2.Cells(j, 5) = Sheet1.Cells(i, 28) 
     Sheet2.Cells(j, 6) = Sheet1.Cells(i, 30) 
     Sheet2.Cells(j, 7) = Sheet1.Cells(i, 37) 
     Sheet2.Cells(j, 8) = Sheet1.Cells(i, 41) 
     Sheet2.Cells(j, 9) = Sheet1.Cells(i, 46) 
     Sheet2.Cells(j, 10) = Sheet1.Cells(i, 51) 
     Sheet2.Cells(j, 11) = Sheet1.Cells(i, 51) 
    End If 

    Next i 

    End Sub 
+0

感谢您的回复,我会尽快尝试 – Kheuwnyuk

+0

它与一些额外的线路一起工作,但非常感谢您指点我正确的方向。干杯! – Kheuwnyuk

相关问题