Excel:使用VBA将行复制到另一个工作表中的表格

我目前正在Excel中处理电子表格。

我的目标是创build一个VBA,将具有特定条件的行复制到工作簿中的下一个工作表和“logging表”中。

我的VBA看起来像这样:

Sub ImportRows() Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long Dim K As Long I = Worksheets("Print").UsedRange.Rows.Count J = Worksheets("Store").UsedRange.Rows.Count If J = 1 Then If Application.WorksheetFunction.CountA(Worksheets("Store").UsedRange) = 0 Then J = 0 End If Set xRg = Worksheets("Print").Range("I2:I" & I) On Error Resume Next Application.ScreenUpdating = False For K = 1 To xRg.Count If CStr(xRg(K).Value) = "Print" Then xRg(K).EntireRow.Copy Destination:=Worksheets("Store").Range("A" & J +1) xRg(K).EntireRow.Copy Destination:=Worksheets("Log").Range("A" & J +1) xRg(K).EntireRow.Delete If CStr(xRg(K).Value) = "Print" Then K = K - 1 End If J = J + 1 End If Next Application.ScreenUpdating = True End Sub 

问题是当我从Sheet1复制调用打印数据是在一个表中,但是当我复制到下一个名为“商店”(或日志)表 – 数据不进入表,但出现在第一行在桌子下面,使得无法对数据进行分类。

对于如何解决这个问题,有任何的build议吗? 我认为,这可能与目标范围有关,但我不确定。


我也在为我正在复制的数据量挣扎 – 从“打印”复制到“存储”时,我只希望复制单元格“A:H”而不是“EntireRow”。


我相当新的Excel! 我感谢任何帮助!

谢谢!


我已经上传了一个屏幕截图,显示了运行macros后“Store”的外观。

在这里输入图像说明

http://imageshack.com/a/img922/9446/gpL9Ov.png

既然你有一个列表对象表,它会容易得多。

要仅从行的A:H列进行复制,请使用Intersect()为A:H列进行裁剪。

然后复制到列表对象表中,将目标设置为新的列表行

 Intersect(xRg(K).EntireRow, Range("A:H")).Copy _ Destination:=range("Table1").ListObject.ListRows.Add.Range 

表名可以在下面find,默认为表#:

菜单

表名