仅复制非空行并粘贴到第一个空行

时间:2016-10-19 10:24:00

标签: excel-vba vba excel

我是VB的新手,所以如果这非常简单,请道歉。我有一个宏来将订单转移到连续的订单登记表。

这是我的代码:

Range("B2:X2").Select 
Application.CutCopyMode = False
Selection.Copy
Sheets("Register of Orders").Select
Range("B9").Select 
ActiveSheet.Paste

而不是Range B2:X2我需要选择所有非空白行。而不是范围B9我需要选择寄存器底部的第一个空白行。

我在这里看了几个答案,并尝试使用建议的代码,但我总是得到一个错误说预期结束Sub。

1 个答案:

答案 0 :(得分:0)

这是一个难以回答的问题,因为我们无法看到您的电子表格。

为了帮助您复制以下代码可能会有所帮助。代码会将数据从B6的B6复制到X6(您可以将其更改为数据表,只要它不在同一张表中。)

代码会将数据从sheet1复制到" Order of Orders"一列一列,忽略空白值。

Sub test_copy_ignoring_blanks()

    Sheets("Register of Orders").Select
    Range("A1").select 'Data will be pasted To Cell A1 moving 1 column position

    'Select the sheet where your data is I'm imagining this is sheet 1
    Sheets(1).Select


    Dim starting_column As Long
    Dim ending_column As Long

    'Set the starting and ending columns
    Range("X6").Select
    ending_column = ActiveCell.Column
    Range("B6").Select
    starting_column = ActiveCell.Column

    'Loop through for the copy
    For counter = starting_column To ending_column
        Cells(6, counter).Select
        If Not IsEmpty(ActiveCell.Value) Then
        ' The cell is not empty so copy it and paste it to Regist Order
        Selection.Copy
        Sheets("Register of Orders").Select
        'Select the Range you want to paste it in
        ActiveSheet.Paste
        'Move the cursor one to the right
        ActiveCell.Offset(0, 1).Select
        Sheets(1).Select
        End If
    Next
End Sub