VBA复制范围到新工作表中的单元格

时间:2018-07-04 03:55:42

标签: excel vba excel-vba

我在同一工作簿中有两张正在处理的图纸。我为每个变量定义了变量dbrs
此处的目标是从db复制某行(只要符合我的条件)到rs上的下一个空行

我尝试过:
db.Range(db.Cells(i, 1), db.Cells(i, M)).Copy _ Destination:=rs.Cells(N, 1).End(xlUp).Offset(1, 0)

Set resrow = db.Range(db.Cells(i, 1), db.Cells(i, M)) 'next line is completely wrong inside the Range bracket rs.Range(rs.Cells(N, 1).End(xlUp).Offset(1, 0)).Resize(1, M).Value = resrow.Value

请注意,iMintegers
我似乎在尝试为单元格设置范围值。我怎样才能最好地解决它?

预先感谢

2 个答案:

答案 0 :(得分:0)

我认为您正在将范围与单元格混合,我会尝试类似的操作:

rsLastRow = rs.UsedRange.Rows.Count

db.Range(Cells(i, 1), Cells(i, M)).Copy
rs.Range("A" & rsLastRow).PasteSpecial Paste:=xlPasteValues

答案 1 :(得分:0)

避免复制和粘贴以减少内存使用并提高VBA性能

Set rng1 = db.Cells(Rows.Count, "A").End(xlUp)
Set rn2 = db.UsedRange
col = rn2.Columns.Count

For Each cel In db.Range("A2:A" & rng1.Row)
   if (condition) then
      Set rng2 = rs.Cells(Rows.Count, "A").End(xlUp)
      rs.Range(Cells(rng2.row, 1), Cells(rng2.row, col)).Value = db.Range(cells(cel.row,1),Cells(cel.row,col)).Value
   end if
Next