【问题标题】:.copy _ Destination syntax, Range Error.copy _ 目标语法,范围错误
【发布时间】:2018-05-31 20:41:01
【问题描述】:

您好,我正在尝试使用 .copy_ 目标语法,而不是在 VBA 循环中复制和粘贴,我收到“对象范围”_Worksheet 失败错误

目前我的代码是这样的

For x = 3 To LastHBR
If InStr(1, HBWS.Cells(x, Tickercolumn - 1), "Total") = 0 Then
    HBWS.Range(Cells(x, 1), Cells(x, ClastHBC)).Copy _
    Destination:=MWS.Range(Cells(LastMWSR + x - 2, 3), Cells(LastMWSR + x - 2, CLastMWSC))
End If
Next

知道为什么该范围会引发错误吗?我尝试了一些变体,但我无法让它落地。

供参考

HBWS 和 MWS 是定义的工作表

ClastHBC、LastMWSR 等是在工作表中定义的最后一行/列。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    可能是因为您需要使用工作表名称限定所有单元格引用,否则将假定活动工作表。

    For x = 3 To LastHBR
        If InStr(1, HBWS.Cells(x, Tickercolumn - 1), "Total") = 0 Then
            HBWS.Range(HBWS.Cells(x, 1), HBWS.Cells(x, ClastHBC)).Copy _
                    Destination:=MWS.Range(MWS.Cells(LastMWSR + x - 2, 3), MWS.Cells(LastMWSR + x - 2, CLastMWSC))
        End If
    Next
    

    【讨论】:

    • 如此简单,但在上面坐了 30 多分钟。那工作 tyvm
    • 这可以说是最常见的问题。
    • @SJR 确切地说,我在 SO 上发布的第一个问题是由于这个问题。
    • 附带说明,我认为您不需要对 Ranges 进行工作表限定(但在我看来更清楚地保留它们)。
    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多