我的代码正在运行,但没有插入任何值
我有这段代码运行时,循环通过文件夹中的文件。 代码确实运行,但是在这个段没有任何输出。
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
- 我正在使用这段代码从文件夹中的所有excel工作簿中提取B15到E81和N15到O 81的数据。
- 将范围复制到variables中后,将激活工作簿,代码位于此处
- 从列E中select最后一项,偏移1行
- input范围variables到下一个空白单元格。
感谢所有我能find的帮助。 提前致谢。
尝试这个:
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
它不工作,因为你必须指向相同数量的单元格。 在你的情况.Range("E" & LastRow + 1).Value = rng1
你指的是左边的一个单元格,右边的很多。
如果您将您的线路更改为:
.Range("E" & LastRow + 1).Value = rng1.Cells(1, 1)
它会正确显示第一个单元格。 增加左范围的一个简单方法是使用Resize()
就像@CallumDA的答案一样。
你不能使用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