【问题标题】:VBA: Paste named range as valueVBA:将命名范围粘贴为值
【发布时间】:2014-04-08 06:34:10
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 这是编程,还是 Excel 中的公式操作?

标签: vba dynamic copy range paste


【解决方案1】:

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

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

确保两个范围的形状和单元格数量相同。您可以使用.Resize().Offset() 方法来操作它们以获得您需要的东西。

【讨论】:

  • 如何使 MyDestRange 动态化?
  • Range("FixedAddress").Offset(0,skip).Resize(N,1)一样使用.Offset()函数
【解决方案2】:

假设您的命名范围具有类似“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

【讨论】:

  • 谢谢!你回答了我的下一个问题
【解决方案3】:
Range("Named_Range_Name_Here").copy

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

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

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多