我需要有关循环代码的帮助,以从 R 列复制一个单元格并粘贴到 C 列的下一个空单元格中。
C栏
12345
12345
12345
(paste 1 in here)
12346
12346
(paste 2 in here)
12347
12347
12347
12347
(paste 3 in here)
R栏
1
2
3
我使用了这段代码,但是当我有 500 条记录时,似乎不可能将此代码重复 500 次。
Range("R2").Select
Selection.Copy
Range("C1").Select
If IsEmpty(ActiveCell.Offset(1, 0)) Then
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.End(xlDown).Offset(1, 0).Select
End If
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
最佳答案
尝试这个:
Option Explicit
Public Sub CopyAndPaste()
Dim colToPaste As New Collection
Dim rngCell As Range
With Worksheets(1)
For Each rngCell In .Range("B1:B5")
colToPaste.Add rngCell
Next rngCell
For Each rngCell In .Range("A1:A500")
If IsEmpty(rngCell) Then
If colToPaste.Count = 0 Then Exit Sub
rngCell = colToPaste(1)
colToPaste.Remove (1)
End If
Next rngCell
End With
End Sub
一般来说,这就是我们所拥有的:
colToPaste
,其中包含 B1:B5
范围内的所有值.您可以根据 B
列中的最后一行更改收集范围并使其具有变量。 .见这里 - https://www.rondebruin.nl/win/s9/win005.htm rngCell = colToPaste(1)
.然后它会删除它。 colToPaste.Count = 0 Then Exit Sub
. =0
部分可以删除,但这样更容易理解。 关于Excel VBA循环代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44135015/