VBA复制列中相同单元格下的单元格内容

时间:2016-06-16 10:08:23

标签: excel vba excel-vba

与VBA合作不是我的任务,但我正在努力学习它。

正如标题所说,我想在这些单元格下复制一列单元格的内容。

为了更清楚,我将发布一个图像,其中ORIGINAL列是我的列,RESULT列是我需要达到的目的。

提前感谢您的帮助。

此链接上的图片:http://i.stack.imgur.com/2uSkq.png

1 个答案:

答案 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