VBA将行复制到其他工作表中的空行

问题描述 投票:0回答:2

我正在尝试创建一个宏来将数据从工作表A复制到工作表B.工作表A只是填充了没有任何布局的数据。工作表B具有特定的布局,其中应粘贴工作表A的数据。工作表B在前10行中有一个标题,因此复制应从第11行开始。工作表A中的数据从第2行开始。因此row2(A)=> row11(B),row3(A)=> row12(B ),...这部分问题的代码包含在下面。

我正在努力的条件是,只应使用工作表B中没有colum F值的行。例如,如果工作表B中的第11-61行在F列中没有值,则工作表A的第2-52行应粘贴在工作表B的第11-61行中。如果单元格F62不为空,则应跳过该行下一行工作表A(第52行)应该粘贴在工作表B的第63行中。依此类推,直到下一行,第F列中有数据。

到目前为止的代码:

Sub RO()
'
' RO Macro
'
' Sneltoets: Ctrl+Shift+S
'

    Dim a As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("SO")
    Set Target = ActiveWorkbook.Worksheets("RO")

    j = 11     ' Start copying to row 11 in target sheet
    For Each a In Source.Range("A2:A10000")   ' Do 10000 rows
        If a <> "" Then
           Source.Rows(a.Row).Copy Target.Rows(j)
           Target.Rows(j).Value = Source.Rows(a.Row).Value
           j = j + 1
        End If
    Next a

提前致谢!

excel vba
2个回答
0
投票

我通常使用这段代码来复制粘贴值。它非常快

    Public Sub Copy()

        Dim Source As Worksheet
        Dim SourceRow As Long
        Dim SourceRange As String

        Dim Target As Worksheet
        Dim TargetRow As Long
        Dim TargetRange As String

        Dim ColumnCount As Long

        Set Source = ActiveWorkbook.Worksheets("Blad1")
        Set Target = ActiveWorkbook.Worksheets("Blad2")

        TargetRow = 11
        ColumnCount = Source.UsedRange.Columns.Count

        For SourceRow = 1 To Source.UsedRange.Rows.Count

            SourceRange = Range(Cells(SourceRow, 1), Cells(SourceRow, ColumnCount)).Address

While Target.Cells(TargetRow, 6).value <> ""
TargetRow = TargetRow + 1
Wend

TargetRange = Range(Cells(TargetRow, 1), Cells(TargetRow, ColumnCount)).Address

Target.Range(TargetRange).Value = Source.Range(SourceRange).Value

            TargetRow = TargetRow + 1
        Next

    End Sub

0
投票

尝试使用2个单独的计数,1用于跟踪您要复制的源行,另一个用于跟踪您尝试粘贴的目标行。然后你可以独立递增它们,具体取决于行是否通过了标准等。

如果你粘贴块有两组行数:源开始和源端,粘贴开始和粘贴结束。不花哨,但允许最大限度地控制和处理异常等。

© www.soinside.com 2019 - 2024. All rights reserved.