![](/img/trans.png)
[英]VBA code to copy cells in specific column and paste (value) it to cells in specific column on another Sheet based on conditions
[英]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.