excel - 如何将行从一个 Excel 工作表复制到另一个 Excel 工作表并使用 VBA 创建重复项?

标签 excel vba

我有一个包含两张工作表的 Excel 工作簿:sheet1 在 A 到 R 列中有一个大型数据表,标题在第 1 行。Sheet2 在 A 到 AO 列中有数据。

我试图使用 VBA 从 sheet1 复制行并将它们粘贴到 sheet2 的末尾。此外,我只需要复制 A 到 R 列,而不是整行。

换句话说,需要将工作表 1 中的单元格 A2:R2 复制到 A 列中没有数据的第一行和第二行。

我有以下代码从 sheet1 复制所需的单元格,但我不知道如何将每一行复制两次:

Sub example()
    For Each ce In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        If Not IsEmpty(ce) Then
            Sheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 18).Value = Range(ce, ce.Offset(0, 17)).Value
        End If
    Next ce
End Sub

最佳答案

试试这个:

Option Explicit
Sub CopyRows()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim i As Integer, k As Integer
    Dim ws1LR As Long, ws2LR As Long

    Set ws1 = Sheets("Sheet1")
    Set ws2 = Sheets("Sheet2")

    ws1LR = ws1.Range("A" & Rows.Count).End(xlUp).Row + 1
    ws2LR = ws2.Range("A" & Rows.Count).End(xlUp).Row + 1

    i = 2
    k = ws2LR
    Do Until i = ws1LR
        With ws1
            .Range(.Cells(i, 1), .Cells(i, 18)).Copy
        End With

        With ws2
            .Cells(k, 1).PasteSpecial
            .Cells(k, 1).Offset(1, 0).PasteSpecial
        End With

        k = k + 2
        i = i + 1
    Loop
End Sub

如果 Sheet1Sheet2 在您的工作簿中被称为不同的东西,请更改它们。

关于excel - 如何将行从一个 Excel 工作表复制到另一个 Excel 工作表并使用 VBA 创建重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12837297/

相关文章:

sql-server - 将存储过程返回值分配给 VBA 变量

arrays - 如何使用 VBA 循环遍历多个数组?

excel - 如何获取具有重复值的单元格地址

vba - 从 VBA 立即窗口移动到代码窗口的快捷键

excel - 使用 vlookup vba 代码在多行和多列中填充值

excel - 更改单元格时自动将行复制到新工作表excel VBA

python - 将单元格中的 Excel 公式转换为 Python 脚本中的函数

vba - 异常 - vba 错误 : object variable or with block variable not set

VBA编译错误 'Wend Without While'

vba - 将行复制并粘贴到新工作表中,并根据其他单元格值更改单元格值(月份)