使单元格的范围等于不同工作簿中另一个单元格的范围

我想从多个工作簿中获取一系列值,并将其input到主工作簿的下一个空行。 我试图尽可能简化这些代码,因为将会有多个工作簿将被input到它的相应的选项卡中的杰作。

例:

Column C (MasterWorkbook,Sheet 2) = Column A (Workbook 1, Sheet 1) 

问题:

  1. 如果行数每天都在变化,您可以将一系列单元格移动到另一个范围内吗?
  2. 有没有简单的方法来引用代码中的工作簿和工作表variables? 例如: wk1.sht1.Origin.Value = wk2.sht2.Destination.Value

代码:

 Sub CopyData() Dim wk1 As Workbook Dim wk2 As Workbook Dim sht1 As Worksheet Dim sht2 As Worksheet Dim Origin As Range Dim Destination As Range Set wk1 = Workbooks("Device") Set wk2 = Workbooks("Pri Access Master) Set sht1 = Worksheets(1) Set sht2 = Worksheets("Device") Set Origin = Range("B2").End(xlDown) Set Destination = Range("D120000").End(xlUp).Offset(1, 0) '(Isn't working)Copy data in column B and paste in next blank row of another workbook in another column wk2.sht2.Destination.Value = wk1.sht1.Origin.Value End Sub 

你引用的对象是不正确的 – 一旦你设置了Range对象,你不需要包含完整的“path”:

 Sub CopyData() Dim wk1 As Workbook Dim wk2 As Workbook Dim sht1 As Worksheet Dim sht2 As Worksheet Dim Origin As Range Dim Destination As Range Set wk1 = Workbooks("Device") Set wk2 = Workbooks("Pri Access Master") Set sht1 = wk1.Worksheets(1) Set sht2 = wk2.Worksheets("Device") Set Destination = sht2.Range("D120000").End(xlUp).Offset(1, 0) 'EDIT - dynamic copy range Set Origin = sht1.Range(sht1.Range("B2"), sht1.Cells(sht1.Rows.Count, "B").End(xlUp)) Destination.Resize(Origin.Rows.Count, Origin.Columns.Count).Value = _ Origin.Value End Sub