与VBA合作不是我的任务,但我正在努力学习它。
正如标题所说,我想在这些单元格下复制一列单元格的内容。
为了更清楚,我将发布一个图像,其中ORIGINAL列是我的列,RESULT列是我需要达到的目的。
提前感谢您的帮助。
答案 0 :(得分:0)
这个功能可以解决问题:
Sub duplicateCells(column As Integer, firstRow As Integer, lastRow As Integer, duplications As Integer)
Dim i As Integer
Dim j As Integer
For i = firstRow To lastRow Step duplications + 1
ActiveSheet.Cells(i, column).Select
Selection.Copy
For j = 1 To duplications
ActiveSheet.Cells(i + j, column).Select
ActiveSheet.Paste
Next j
Next i
End Sub
列:您希望此列运行的列。在您的示例中,这是列' 1'
firstRow:此例程应该开始的行。在您的示例中,这将是row' 2'
lastRow:此例程应处理的最后一行。在您的示例中,这将是行&#39; <&#39;
重复:应该制作的副本数量。在您的示例中,这是&#39; 2&#39;
要运行该示例,您应该运行
call duplicateCells(1, 2, 8, 2)
确保在运行此宏之前选择了工作表。
修改强>
在优化函数下面,执行相同但是在评论中由dave建议进行优化:
Sub duplicateCells(sheetName As String, column As Integer, firstRow As Integer, lastRow As Integer, duplications As Integer)
Dim i As Integer
Dim j As Integer
Dim sheet As New Worksheet
Set sheet = ThisWorkbook.Sheets(sheetName)
For i = firstRow To lastRow Step duplications + 1
For j = 1 To duplications
sheet.Cells(i + j, column).Value = sheet.Cells(i, column).Value
Next j
Next i
End Sub