【发布时间】:2016-10-20 20:12:04
【问题描述】:
我有两个工作簿,它们的多个列中有数据,我想将它们复制并放入包含此宏的新工作簿中。基本上我希望能够打开当前工作簿“z”,运行宏,并从其他两个现有工作簿中移动/复制数据。
我一直在这里搜索并查看来自不同帖子的不同想法,并且认为我已经大致了解了这一点,但是当我运行此代码时遇到了“运行时错误 1004”。错误发生在第一个 y.Range 行,我还没有弄清楚原因。
我已经成功地从“x”工作簿中提取数据,但不能从“y”中提取数据。
我是 VBA 新手,因此我们将不胜感激。
谢谢,
Sub SellPrice()
Dim x As Worksheet, y As Worksheet, z As Worksheet, LastRow&
Workbooks.Open ("C:\Users\tsmith\Desktop\SellPrice\PRODUCT.XLS")
Workbooks.Open ("C:\Users\tsmith\Desktop\SellPrice\GrossProfit.xls")
Set x = Workbooks("PRODUCT.XLS").Worksheets("ProductFile")
Set y = Workbooks("GrossProfit.xls").Worksheets("Sellprice")
Set z = Workbooks("SellPriceMacro.xlsm").Worksheets("Sheet1")
LastRow = x.Cells.SpecialCells(xlCellTypeLastCell).Row
x.Range("B4:B" & LastRow).Copy z.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
x.Range("C4:C" & LastRow).Copy z.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0)
x.Range("K4:K" & LastRow).Copy z.Cells(Rows.Count, "C").End(xlUp).Offset(1, 0)
LastRow = y.Cells.SpecialCells(xlCellTypeLastCell).Row
y.Range("B2:B" & LastRow).Copy z.Cells(Rows.Count, "E").End(x1Up).Offset(1, 0)
y.Range("C2:C" & LastRow).Copy z.Cells(Rows.Count, "F").End(x1Up).Offset(1, 0)
y.Range("D2:D" & LastRow).Copy z.Cells(Rows.Count, "G").End(x1Up).Offset(1, 0)
y.Range("H2:H" & LastRow).Copy z.Cells(Rows.Count, "H").End(x1Up).Offset(1, 0)
Application.CutCopyMode = False
End Sub
【问题讨论】: