2014-03-05 135 views
0

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

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

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

谢谢!

+1

这是编程,或Excel公式操作? – ja72

回答

1

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

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

确保两个范围是相同的形状和细胞的数量。您可以使用.Resize().Offset()方法操纵这些方法以获得您所需的内容。

+1

+1。击败我20秒。 –

+0

我怎样才能使MyDestRange动态? – MathLover

+0

使用'.Offset()'函数,如'Range(“FixedAddress”)。Offset(0,skip).Resize(N,1)' – ja72

1

假设你命名的区域有一个像“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 
+0

谢谢!你回答我的下一个问题 – MathLover