Excel VBA将单元格区域复制到另一工作簿上的区域
我的代码如下。我试图从一个工作簿复制一系列数据,并将其放到另一个工作簿上。我无法在一系列数据上实现这一点。例如,如果我为图纸y提供范围AH5:AH994,为图纸x提供单个范围B2,它将运行并使用B2中的数据填充该范围。如果B2:B991和AH5:AH994的尺寸相同,是否可以获取整个范围并将其复制到AH5:AH994Excel VBA将单元格区域复制到另一工作簿上的区域,excel,vba,Excel,Vba,我的代码如下。我试图从一个工作簿复制一系列数据,并将其放到另一个工作簿上。我无法在一系列数据上实现这一点。例如,如果我为图纸y提供范围AH5:AH994,为图纸x提供单个范围B2,它将运行并使用B2中的数据填充该范围。如果B2:B991和AH5:AH994的尺寸相同,是否可以获取整个范围并将其复制到AH5:AH994 Sub foo2() Dim x As Workbook Dim y As Workbook '## Open both workbooks first: Set x = Wor
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
或者,如果您只需要值:
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)
或者,如果您只需要值:
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)
将列范围复制到其他工作簿
设置
- 在一个工作簿中,源数据位于列
,从第二行(单元格B
)开始。将在运行时计算行数B2
- 目标是将数据(仅值)复制到另一个工作簿中从单元格
开始的列范围AH5
- 在计算后,例如,
,sRng=.Range(“B2:B5”)
可以这样复制值:tCell=.Range(“AH5”)
y.Sheets("Main").Range("AH5:AH994").Value = x.Sheets("Database").Range("B2:B991").Value
tCell.Resize(sRng.Rows.Count).Value = sRng.Value
将列范围复制到其他工作簿
设置
- 在一个工作簿中,源数据位于列
,从第二行(单元格B
)开始。将在运行时计算行数B2
- 目标是将数据(仅值)复制到另一个工作簿中从单元格
开始的列范围AH5
- 在计算后,例如,
,sRng=.Range(“B2:B5”)
可以这样复制值:tCell=.Range(“AH5”)
y.Sheets("Main").Range("AH5:AH994").Value = x.Sheets("Database").Range("B2:B991").Value
tCell.Resize(sRng.Rows.Count).Value = sRng.Value
我会在
范围(“B2:B991”)
的末尾添加缺少的值。。。如果你只想使用Range(“B2”)
,你可以将其调整为与Range(“AH5:AH994”)
@BigBen不知道我需要.Value标签,现在就可以了。谢谢你!因为我不能接受您的评论作为答案,我将接受另一个答案来关闭此线程。我将在.Range(“B2:B991”)
的末尾添加缺少的.Value
。。。如果你只想使用Range(“B2”)
,你可以将其调整为与Range(“AH5:AH994”)
@BigBen不知道我需要.Value标签,现在就可以了。谢谢你!因为我不能接受你的评论作为答案,我将接受另一个答案来关闭此线程。感谢提供替代解决方案,BigBen的评论解决了我的问题,但我将为其他可能有类似问题的人标记此答案。希望你不介意我在此处添加价值转移作为一个潜在选项。这样,未来的读者就会知道如何使用它并避免使用剪贴板。我同意Bigben的答案更好,但我也确实认为使用带有目标参数的copy方法可以避免使用剪贴板,但在测试它时,它实际上似乎清除了剪贴板…奇怪的是,感谢提供了替代解决方案,BigBen的评论解决了我的问题,但我会为其他可能有类似问题的人标记这个答案。希望你不介意我在这里添加价值转移作为一个潜在的选择。这样,未来的读者就会知道如何使用它,避免使用剪贴板。我同意Bigben的答案更好,但我也确实认为使用带有目标参数的复制方法可以避免使用剪贴板,但在测试它时,它实际上似乎清除了剪贴板…奇怪