【问题标题】:Copy a static range on one sheet, and paste in a dynamic range in another sheet based on a single value in a cell在一张纸上复制静态范围,然后根据单元格中的单个值将动态范围粘贴到另一张纸上
【发布时间】:2017-04-12 03:40:35
【问题描述】:

我有这个问题的三个部分。我在 Sheet1!A1 中有一个带有周数的单元格。我在 Sheet1!B1:F1 中有一个需要复制的静态范围。然后我需要将值粘贴到 Sheet2 中的动态范围内,偏移量为行的周数。这是我正在为我经常使用的工作表编写的一个更大的宏的一部分,但我似乎把这些部分写下来了。我可能过于简单化或过于简单化,但这就是我目前所拥有的。

Sub CopyPaste()
    Sheets(1).Range("B1:F1").Copy
    OffsetRange = Sheets(1).Cells(1,1).Value
    Sheets(2).Cells(1+OffsetRange,1).Paste
End Sub

当我运行它时,它给我一个运行时错误 9 或运行时错误 438。

有人知道是什么导致了这些错误吗?当我粘贴范围时,当我粘贴到该位置时,单元格对象是否指向复制范围的第一个单元格?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    试试看,

    Option Explicit
    
    Sub CopyPasteOffset()
        Dim OffsetRange As Long
        OffsetRange = Worksheets(1).Cells(1, 1).Value
        Worksheets(1).Range("B1:F1").Copy _
            Destination:=Worksheets(2).Cells(1 + OffsetRange, 1)
    End Sub
    

    .Paste 方法是 Worksheet 的成员,而不是 Range 或 Cells 的成员。您可能会将它与作为 Range 对象成员的 .PasteSpecial 混淆。无论如何,这是不必要的,因为可以将目标直接应用于复制命令。

    【讨论】:

    • Destination:= 给我“预期:表达式”,而 Destination = 给我“变量未定义”
    • 你在.Copy _后面加了下划线吗?你有没有像我一样重新排列命令?
    • 我看到了这个问题。我在副本和_之间没有空格。有没有办法将要粘贴的副本的目标包含为粘贴特殊值?原始代码中不包含粘贴操作,所以我很好奇如何才能实现这一点?
    • 嗯,有几种方法(想到三个),但这不是你问的。
    • 我知道,新成员,等待 90 分钟来尝试完成此操作非常耗时,哦,好吧。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2022-08-23
    • 2020-02-02
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    相关资源
    最近更新 更多