设置范围只产生第一行数据
Set range only produces first row of data
我正在执行遍历文件夹并相应地从每个工作簿收集一系列数据的功能。我的代码能够 运行 但为什么它只复制所选范围的第一行。
Range to be copied: I80:I83. Only copy I80
代码如下
Dim lastRow As Range, rng1 As Range, lastrow2 As Range, rng2 As Range
With ThisWorkbook.Sheets(1)
Set rng1 = Worksheets(2).Range("I80:I83")
Set rng2 = Worksheets(2).Range("I1")
Set lastRow = .Range("B" & .Rows.Count).End(xlUp)
lastRow.Offset(1, 0).Resize(rng1.Columns.Count, rng1.Rows.Count) = rng1.Value
Set lastrow2 = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "A").End(xlUp)
lastrow2.Offset(1, 0).Resize(rng2.Rows.Count, rng2.Columns.Count) = rng2.Value
End With
代码输出
提前致谢 (:
您的行和列大小调整是向后的。
lastRow.Offset(1, 0).Resize(rng1.Rows.Count, rng1.Columns.Count) = rng1.Value
如果您打算将 4 行数据写入 4 列,那么您需要转置数组。
lastRow.Offset(1, 0).Resize(rng1.Columns.Count, rng1.Rows.Count) = application.transpose(rng1.Value)
您可能还想将多个值放入 A 列。
lastrow2.Offset(1, 0).Resize(rng1.Rows.Count, rng1.Columns.Count) = rng2.Value
我正在执行遍历文件夹并相应地从每个工作簿收集一系列数据的功能。我的代码能够 运行 但为什么它只复制所选范围的第一行。
Range to be copied: I80:I83. Only copy I80
代码如下
Dim lastRow As Range, rng1 As Range, lastrow2 As Range, rng2 As Range
With ThisWorkbook.Sheets(1)
Set rng1 = Worksheets(2).Range("I80:I83")
Set rng2 = Worksheets(2).Range("I1")
Set lastRow = .Range("B" & .Rows.Count).End(xlUp)
lastRow.Offset(1, 0).Resize(rng1.Columns.Count, rng1.Rows.Count) = rng1.Value
Set lastrow2 = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "A").End(xlUp)
lastrow2.Offset(1, 0).Resize(rng2.Rows.Count, rng2.Columns.Count) = rng2.Value
End With
代码输出
提前致谢 (:
您的行和列大小调整是向后的。
lastRow.Offset(1, 0).Resize(rng1.Rows.Count, rng1.Columns.Count) = rng1.Value
如果您打算将 4 行数据写入 4 列,那么您需要转置数组。
lastRow.Offset(1, 0).Resize(rng1.Columns.Count, rng1.Rows.Count) = application.transpose(rng1.Value)
您可能还想将多个值放入 A 列。
lastrow2.Offset(1, 0).Resize(rng1.Rows.Count, rng1.Columns.Count) = rng2.Value