【问题标题】:Copying data into Range name in excel 2007 via vba通过vba将数据复制到excel 2007中的范围名称
【发布时间】:2012-10-20 14:39:38
【问题描述】:

如果我在 vba 中使用 10 个值填充一个对象,并将其粘贴到已定义为 200 行长的范围内,这 10 个值是否会在预定义的范围内一遍又一遍地复制?

注意:填充和粘贴是通过vba代码完成的,范围是在excel中定义的。

这似乎发生在 excel vba 2007 中,但不是在 2010 年。需要修复 2007 年的问题。非常感谢您的意见..

谢谢你!

【问题讨论】:

  • 查看您的代码会很有用。否则我们只能猜测。
  • 当您没有完全阐明问题时,您如何接受答案?
  • 整个问题很复杂,因此我对它进行了抽象。答案为我和任何面临类似情况的用户提供了我们需要解决的问题。
  • 罗伊,感谢您的回复。我担心/是您的问题中可能没有足够的细节来帮助其他人。特别是对于在一个 xl 版本中工作但不能在另一个版本中工作的代码

标签: excel vba range


【解决方案1】:

为避免粘贴额外数据,Set 一个变量到您的命名范围,Resize 粘贴前该变量,例如

如果粘贴的“对象”是Range

Set rng = [MyNamedRange]
rng.Resize(CopyFormRange.Rows.Count, CopyFormRange.Columns.Count).Copy CopyFormRange

如果被粘贴的“对象”是一个数组

Set rng = [MyNamedRange]
rng.Resize(UBound(CopyFromArray, 1) - LBound(CopyFromArray, 1), _
           UBound(CopyFromArray, 2) - LBound(CopyFromArray, 2)).Copy CopyFormRange

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    相关资源
    最近更新 更多