VBA复制变量范围

时间:2019-03-19 12:02:13

标签: excel vba

我有一个模板,其中有一个工作表作为输入表。用户在此输入建筑物地址信息。然后,我运行一个宏,将该数据传输到输入表中。我有三列数据,它们可以具有可变的行号,有时一个位置可能是500或更多。

因此,我设置了一个位置计数变量,并尝试将数据复制到另一张表中,但始终获取定义的1004错误对象。我敢肯定这很简单,但我无法解决。

我的代码是:

With WsInput
    LocCount = .Range("B18", .Range("B18").End(xlDown)).Rows.Count
End With

With WsLoc
    .Range("D:F").Value = WsInput.Range(.Cells(17 + LocCount, 2), .Cells(17 + LocCount, 5).Value)
End With

1 个答案:

答案 0 :(得分:0)

您正在尝试使用目标中的单元格设置源。

留在第一个With ... End With内,并使用源设置目标的行和列。

With WsInput

    LocCount = .Range("B18", .Range("B18").End(xlDown)).Rows.Count

    with .Range(.Cells(17 + LocCount, 2), .Cells(17 + LocCount, 5))
        WsLoc.Range("D1").resize(.rows.count, .columns.count) = .Value
    end with

End With

该代码似乎自相矛盾。也许你的意思是这样的。

With WsInput

    LocCount = .Range("B18", .Range("B18").End(xlDown)).Rows.Count

    with .Range(.Cells(18, 2), .Cells(17 + LocCount, 5))
        WsLoc.Range("D1").resize(.rows.count, .columns.count) = .Value
    end with

End With