我正在将数据从一个工作簿复制到另一个工作簿。我一直在与Range挣扎,无法弄清楚我应该如何插入数据。
Workbook A Workbook B
ID Name Id Name
1A 3C Sarah
2A 4J Joy
5D R8 Lucas
结果
(Expected) Reality
ID Name Id Name
1A 1A Sarah
2A 2A Joy
5D 5D Lucas
3C Sarah 3C
4J Joy 4J
R8 Lucas R8
Sub CopyOttiCoverage()
Dim x As Workbook
Dim y As Workbook
Dim rng As Range
Dim LastRow As Long
Dim NextRow As Long
Set x = Workbooks.Open("H\A.xlsm")
Set y = ThisWorkbook 'Workbooks.Open("H:\B.xlsx")
x.Worksheets("Sheet1").Activate
Range("A65536").Select
ActiveCell.End(xlUp).Select
LastRow = ActiveCell.Row
Range("A2:A" & LastRow).Copy y.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 0)
Range("B2:B" & LastRow).Copy y.Worksheets("Sheet1").Range("b65536").End(xlUp).Offset(1, 0)
Application.CutCopyMode = False
如上所示,当我将记录从B复制到A时,其中A在名称字段中包含所有空白,结果将名称放在错误的位置。所以我认为它与我粘贴的范围有关。此外,如果有人可以告诉我是否可以在ID列之前插入日期列并使用系统日期更新它。提前谢谢。
答案 0 :(得分:1)
将底部粘贴行更改为:
Range("B2:B" & LastRow).Copy y.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 1)
并将其置于另一条线之上。所以它看起来像这样:
Sub CopyOttiCoverage()
Dim x As Workbook
Dim y As Workbook
Dim rng As Range
Dim LastRow As Long
Dim NextRow As Long
Set x = Workbooks.Open("H\A.xlsm")
Set y = ThisWorkbook 'Workbooks.Open("H:\B.xlsx")
x.Worksheets("Sheet1").Activate
Range("A65536").Select
ActiveCell.End(xlUp).Select
LastRow = ActiveCell.Row
Range("B2:B" & LastRow).Copy y.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 1)
Range("A2:A" & LastRow).Copy y.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 0)
Application.CutCopyMode = False
这可能不是最好的方法,但它应该有效。
编辑:此外,您可以通过以下方式立即复制整个范围:
Range("A2:B" & LastRow).Copy y.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1,0)
然后,如果将“B”更改为“C,D,X”,则可以获得一大堆连接列。