簡體   English   中英

VBA循環復制和粘貼行基於一個特定的單元格值

[英]VBA loop copy and paste rows based one a specific cells value

我對 VBA 編碼非常陌生,並且正在嘗試創建一種方法讓 excel 在一張紙上查看特定單元格中的值,然后在另一張紙上復制一系列行並將它們粘貼到下面。 我已經寫了這個,但我需要至少復制 50 份,並且知道代碼運行時間會太長。 有沒有更簡單的方法來做到這一點? 還是一種壓縮代碼的方法,使其全部在一個子上運行?

'1 copy
 Worksheets("Sheet 1").Activate
 If Range("D23") = ("2") Then
 Worksheets("Sheet 2").Activate
 Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
 End If
'2 copies
 Worksheets("Sheet 1").Activate
 If Range("D23") = ("3") Then
 Worksheets("Sheet 2").Activate
 Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
 Worksheets("Sheet 2").Range("14:24").Copy Range("38:48")
 End If
'3 copies
 Worksheets("Sheet 1").Activate
 If Range("D23") = ("4") Then
 Worksheets("Sheet 2").Activate
 Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
 Worksheets("Sheet 2").Range("14:24").Copy Range("38:48")
 Worksheets("Sheet 2").Range("14:24").Copy Range("50:60")
 End If

歡迎使用 VBA,首先您不需要每次復制時都激活。

If Range("D23") = ("2") Then
Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
End If

另外為了避免多行我想象這樣的事情:

For count= 1 To 50

If Range("D" & count) = ("2") Then
    Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
End If
If Range("D" & count) = ("3") Then
    Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
    Worksheets("Sheet 2").Range("14:24").Copy Range("38:48")
End If
If Range("D" & count) = ("4") Then
    Worksheets("Sheet 2").Range("14:24").Copy Range("26:36")
    Worksheets("Sheet 2").Range("14:24").Copy Range("38:48")
    Worksheets("Sheet 2").Range("14:24").Copy Range("50:60")
End If

Next count

該代碼從 D1 復制到 D50 復制,只需要動態調整復制范圍。

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM