【发布时间】:2019-06-08 23:02:13
【问题描述】:
我正在尝试复制一系列单元格,直到我的主工作簿已经打开并激活的另一个工作簿中最后使用的行。范围需要从 C2 开始到 M 列,然后直到第一个空白行。
到目前为止,我的代码复制了正确的单元格列,但向下延伸到使用的行之外,进入空白行。我附上了截图。将复制的单元格粘贴到主工作簿中成功。
Workbooks.Open ("C:\Users\user\Documents\Maintenance Department\General\Equipment Documentation\Holding Furnace\Readings\Data Logs\Flow Sensor Monthly Alarm Log - Inductor.xlsx")
ThisWorkbook.Activate
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Workbooks("Flow Sensor Monthly Alarm Log - Inductor.xlsx").Worksheets("Sheet1").Range("C2:M2" & LastRow).Copy
ThisWorkbook.Sheets("Data").Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
【问题讨论】:
-
这是因为您从要复制的工作表中获取最后一行,而不是刚刚打开的工作簿:
LastRow = Workbooks("Flow Sensor Monthly Alarm Log - Inductor.xlsx").Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row -
我用您回复中的代码替换了该行,复制的单元格现在向下延伸到第 26 行而不是第 21 行
-
另外
Range("C2:M2" & LastRow)将返回错误的行,如果LastRow为6,则范围变为Range("C2:M26")而不是Range("C2:M6")你想要Range("C2:M" & LastRow) -
完美!!谢谢!!