【问题标题】:VBA Copy & Paste Loop ( Generate Field Number)VBA 复制和粘贴循环(生成字段编号)
【发布时间】:2017-08-05 09:42:57
【问题描述】:

现在我正在努力根据 excel 中的数量生成标签。我设法根据单元格中的值复制和粘贴它。但是,我不知道如何根据循环进行一些单元格更改。

以下为示例:

当前结果:

| 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/No 是基于数量的循环。不仅仅是复制粘贴。有什么可以补充的吗?

下面是我当前的代码:

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

【问题讨论】:

  • 你到底想做什么??
  • @Shrikant 我希望字段 C/No 也根据复制和粘贴后的总量循环。现在它只是复制所有值。
  • @Shrikant 已经根据以下答案获得了解决方案。

标签: vba excel


【解决方案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

【讨论】:

  • 非常感谢@YowE3k ...它的作品。但我不明白它实际上是如何工作的。
  • @Safwan Range 对象(例如单元格)具有 Value 属性。将 Value 属性设置为某个值就是在单元格中设置值。所以Range("A5").Value = "xyz" 会说将字符串xyz 放入单元格A5。在代码中,我在复制到的开头使用单元格,将其偏移两行两列,并将循环计数器的值写入该单元格。
猜你喜欢
  • 2015-12-02
  • 1970-01-01
  • 2019-05-20
  • 2019-01-23
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
相关资源
最近更新 更多