是否有内置的方法来完成这样的事情,或者使用VBA等聪明的方式?
例如,假设我在Sheet1上。我希望能够说"好的,从这个源表开始粘贴Sheet 1上的数据(无论如何),但仅从这些列"。
因此,例如在工作表1上,我们有A列,B列和C列,其中包含"名称,ID,类型"工作表1中的数据,从第5行开始 - 其数据来自Sheet2,D列,H,K列(该数据从第7行开始)。
现在我几乎只是按行进行原始VBA迭代并复制值,但我必须对许多不同的数据源和列执行此类过程,因此它变得混乱而且我不会不知道是否有更聪明的方法来做到这一点。
答案 0 :(得分:0)
为什么不复制整个范围而不是单个单元格(1000
只是一个例子):
Sub DoTheJob()
Copy Sheet2.Range("D7"), Sheet1.Range("A5"), 1000, 1
Copy Sheet2.Range("H7"), Sheet1.Range("B5"), 1000, 1
Copy Sheet2.Range("K7"), Sheet1.Range("C5"), 1000, 1
End Sub
Sub Copy(from As Range, toRange As Range, rows As Integer, columns As Integer)
Range(from, from.Offset(rows, columns)).Copy Destination:=toRange
End Sub
<强>更新强> 对于不同工作簿之间的复制,请使用以下内容:
Set sheetFrom = Workbooks("Book1.xlsm").Sheets("Sheet2")
Set sheetTo = Workbooks("Book2.xlsx").Sheets("Sheet1")
Copy sheetFrom.Range("D7"), sheetTo.Range("A5"), 1000, 1
(当然两个工作簿都必须在之前打开)
答案 1 :(得分:0)
我没有足够的声誉来评论Fratyx的答案,所以我必须这样添加它。我相信你可以使用
而不是这种方法中的1000 Sheet2.UsedRange.Rows.Count
从第7行获取第1行中数据的所有内容。