首页 > 解决方案 > VBA将单元格范围复制到另一个工作簿上的范围

问题描述

Sub foo2()
Dim x As Workbook
Dim y As Workbook

'## Open both workbooks first:
Set x = Workbooks.Open("pathoffile.xlsx")
Set y = Workbooks.Open("pathoffile.xlsm")

'Now, transfer values from x to y:
y.Sheets("Main").Range("AH5:AH994").Value = x.Sheets("Database").Range("B2:B991")

'Close x:
x.Close

End Sub

我的代码如下。我正在尝试从一个工作簿复制一系列数据并将其放置到另一个工作簿上。我无法在一系列数据上进行这项工作。例如,如果我为工作表 y 提供范围 AH5:AH994,为工作表 x 提供单个范围 B2,它将运行并使用来自 B2 的数据填充范围。是否可以抓取整个范围 B2:B991 并将其复制到 AH5:AH994,因为它们的大小相同?

标签: excelvba

解决方案


x.Sheets("Database").Range("B2:B991").Copy Destination:=y.Sheets("Main").Range("AH5:AH994")

或者如果你只想要值:

x.Sheets("Database").Range("B2:B991").Copy 
y.Sheets("Main").Range("AH5:AH994").PasteSpecial(xlPasteValues)

但价值转移应该有效并避免使用剪贴板:

y.Sheets("Main").Range("AH5:AH994").Value = x.Sheets("Database").Range("B2:B991").Value

推荐阅读