VBA:将命名范围粘贴为值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA:将命名范围粘贴为值相关的知识,希望对你有一定的参考价值。

我有一个动态命名范围,在工作表“Data1”中将其命名为“MYRange”。动态我的意思是范围编码为

=offset(A1,0,0, COUNTA(A:A),1). 

填充这些单元格的实际值是通过vlookup完成的。我想将此范围复制到另一个名为“Data2”的工作簿中作为值,否则我会得到一个参考问题。

谢谢!

答案

要复制两个范围之间的值,请使用:

Range("MyDestRange").Value = Range("MySrcRange").Value

确保两个范围的形状和细胞数相同。您可以使用.Resize().Offset()方法操纵那些来获得您需要的东西。

另一答案

假设您的命名范围具有类似“MyRange”的名称,如下所示:

Dim srcRange as Range, destRange as Range

Set srcRange = Range("MyRange")
Set destRange = Workbooks("Data2").Worksheets(1).Range("A1").Resize(srcRange.Rows.Count, srcRange.Columns.Count)

destRange.Value = srcRange.Value
另一答案
Range("Named_Range_Name_Here").copy

Range("Sheet_Name").Range("Cell Reference").PasteSpecial Paste:=xlPasteValues

粘贴到单个单元格将像您一样粘贴数据。它将从那里开始粘贴并粘贴名称范围,除非您选择转置它。

以上是关于VBA:将命名范围粘贴为值的主要内容,如果未能解决你的问题,请参考以下文章

excel VBA 当有公式的单元格录入内容后,自动将内容粘贴为数值

VBA:粘贴范围清除后粘贴功能导致1004错误

excel vba复制数据范围,打开新的xlsx文件重命名表并保存

如何使用 vba 选择粘贴范围

粘贴为值

Excel VBA - 循环遍历多个文件夹中的文件,复制范围,粘贴到此工作簿中