2017-08-05 161 views
0

现在我正在根据excel中的数量生成标签。我设法得到它复制&粘贴基于单元格的值。但是,我不知道如何根据循环改变一些细胞。VBA复制和粘贴循环(生成字段编号)

下面是例子:

当前的结果:

| A         | B  | C      | D  | E  | 
|------------------------------- |----- |-------------------- |----- |----- | 
| NMB IN DIA      |  | MADE IN THAILAND  |  |  | 
| INVOICE NO      | :  | MM035639    |  |  | 
| C/NO        | :  | 1      |/ | 2  | 
| SHIP TO       | :  | A      |  |  | 
| QTY        | :  | 100     |  |  | 
| NMB PARTS NO      | :  | SFASDF234    |  |  | 
|         |  | *SFASDF234*   |  |  | 
| CUST PARTS NO      | :  | SFASDF234    |  |  | 
| CUST ORDER NO      | :  |      |  |  | 
| -----------------------------  | --- | ------------------ | --- | --- | 
| NMB IN DIA      |  | MADE IN THAILAND  |  |  | 
| INVOICE NO      | : | MM035639    |  |  | 
| C/NO        | : | 1      |/ | 2  | 
| SHIP TO       | : | A      |  |  | 
| QTY        | : | 100     |  |  | 
| NMB PARTS NO      | : | SFASDF234    |  |  | 
|         |  | *SFASDF234*   |  |  | 
| CUST PARTS NO      | : |      |  |  | 
| CUST ORDES NO      | : |      |  |  | 

预期结果:

| A         | B  | C      | D  | E  | 
|------------------------------- |----- |-------------------- |----- |----- | 
| NMB IN DIA      |  | MADE IN THAILAND  |  |  | 
| INVOICE NO      | :  | MM035639    |  |  | 
| C/NO        | :  | 1      |/ | 2  | 
| SHIP TO       | :  | A      |  |  | 
| QTY        | :  | 100     |  |  | 
| NMB PARTS NO      | :  | SFASDF234    |  |  | 
|         |  | *SFASDF234*   |  |  | 
| CUST PARTS NO      | :  | SFASDF234    |  |  | 
| CUST ORDER NO      | :  |      |  |  | 
| -----------------------------  | --- | ------------------ | --- | --- | 
| NMB IN DIA      |  | MADE IN THAILAND  |  |  | 
| INVOICE NO      | : | MM035639    |  |  | 
| C/NO        | : | 2      |/ | 2  | 
| SHIP TO       | : | A      |  |  | 
| QTY        | : | 100     |  |  | 
| NMB PARTS NO      | : | SFASDF234    |  |  | 
|         |  | *SFASDF234*   |  |  | 
| CUST PARTS NO      | : |      |  |  | 
| CUST ORDES NO      | : |      |  |  | 

正如你可以预期的结果看,在C /否是基于环数量。不只是复制粘贴。有什么我可以添加的?

下面是我当前的代码:

Private Sub CommandButton1_Click() 

Dim i As Long 

For i = 2 To Worksheets("Sheet3").Range("E3").Value 

    Range("A1:A9", Range("E9")).Copy Sheet3.Range("A65536").End(xlUp)(2) 

Next i 

End Sub 
+0

你想要做什么? – Shrikant

+0

@Shrikant我想复制和粘贴后,基于总量的字段C/No也循环。现在它只是复制所有值。 – Safwan

+1

@Shrikant已经根据以下答案获得解决方案。 – Safwan

回答

1

只需设置相关的细胞对i值:

Private Sub CommandButton1_Click() 
    Dim i As Long 
    Dim NewLoc As Range 

    For i = 2 To Worksheets("Sheet3").Range("E3").Value 
     'Decide where to copy the output to 
     Set NewLoc = Sheet3.Cells(Sheet3.Rows.Count, "A").End(xlUp).OffSet(1, 0) 
     'Copy the range 
     Range("A1:E9").Copy NewLoc 
     'Change the value of the cell 2 rows down and 2 rows to the right 
     NewLoc.Offset(2, 2).Value = i 
    Next i 

End Sub 
+0

非常感谢@ YowE3k ......它的作品。但我不明白它的实际工作情况。 – Safwan

+0

@Safwan范围对象(如单元格)具有“Value”属性。将'Value'属性设置为某个值就是在单元格中设置值。所以'Range(“A5”).Value =“xyz”'会将字符串'xyz'放入单元格A5中。在代码中,我在复制到的位置的起始处使用单元格,将其偏移两行两列,并将循环计数器的值写入该单元格。 – YowE3K