我在循环浏览文件夹中的文件时运行了这段代码。 代码运行但是,此段上没有任何输出。
Dim LastRow As Long
Dim rng1 As Range
wb.Worksheets(1).Activate
Set rng1 = Range("B15:E81,N15:O81")
With ThisWorkbook.Worksheets("Sheet1")
LastRow = .Cells(.Rows.Count, "E").End(xlUp).Row
.Range("E" & LastRow + 1).Value = rng1
End With
感谢我能找到的所有帮助。提前谢谢。
答案 0 :(得分:2)
试试这个:
Dim lastRow As Range, rng1 As Range
Set rng1 = Worksheets(1).Range("B15:E81,N15:O81")
Set lastRow = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "E").End(xlUp)
lastRow.Offset(1, 0).Resize(rng1.Rows.Count, rng1.Columns.Count).Value = rng1.Value
答案 1 :(得分:1)
它不起作用,因为你必须引用相同数量的单元格。在你的情况下.Range("E" & LastRow + 1).Value = rng1
,你指的是左边的一个单元格,右边的单元格。
如果您将线路更改为:
.Range("E" & LastRow + 1).Value = rng1.Cells(1, 1)
它会正确显示第一个单元格。
增加左侧范围的一种简洁方法是使用Resize()
,如@CallumDA的答案。
答案 2 :(得分:0)
你不能使用Copy
吗?然后不必计算目标大小。
dim target as range
With ThisWorkbook.Worksheets("Sheet1")
set target = .Range("E" & .Cells(.Rows.Count, "E").End(xlUp).Row+1 )
end With
wb.Worksheets(1).Range("B15:E81,N15:O81").Copy target