我是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。
答案 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