【问题标题】:VBA copy range error 1004 [duplicate]VBA 复制范围错误 1004 [重复]
【发布时间】:2016-05-12 16:13:14
【问题描述】:

运行此代码时出现 1004 错误:

Dim Row As Integer
Dim Col As Integer

Row = Worksheets("Design").Cells(11, 22).Value
Col = Worksheets("Design").Cells(12, 22).Value

Worksheets("Tablecorrected").Range(Cells(2 + 19 * Row, 1 + 19 * Col), Cells(19 + 19 * Row, 18 + Col * 19)).Copy _
Destination:=Worksheets("Scriptsheet").Range(Cells(1, 1), Cells(18, 18))

它指向复制行,我不知道这里有什么问题。谢谢你的帮助

【问题讨论】:

  • Range() 中的Cells() 指的是活动工作表,而不是Range() 所指的工作表。您需要将Cells() 限定为正确的表格。 Worksheets("Tablecorrected").Range(Worksheets("Tablecorrected").Cells(2 + 19 ... 等等。
  • 像这样:codeWorksheets("Tablecorrected").Range(Worksheets("Tablecorrected").Range(Cells(2 + 19 * Row, 1 + 19 * Col), Cells(19 + 19 * Row, 18 + Col * 19))).Copy _ Destination:=Worksheets("Scriptsheet").Range(Worksheets("Scriptsheet").Range(Cells(1, 1), Cells(18, 18) )) code

标签: excel vba


【解决方案1】:

Range() 中的Cells() 指的是活动工作表,而不是Range() 所指的工作表。

您需要将Cells() 限定为正确的工作表。

Worksheets("Tablecorrected").Range(Worksheets("Tablecorrected").Cells(2 + 19 ... and so on.

或者为了节省输入,您可以使用 With Block

Dim Row As Integer
Dim Col As Integer

Row = Worksheets("Design").Cells(11, 22).Value
Col = Worksheets("Design").Cells(12, 22).Value

With Worksheets("Tablecorrected")

    .Range(.Cells(2 + 19 * Row, 1 + 19 * Col), .Cells(19 + 19 * Row, 18 + Col * 19)).Copy _
    Destination:=Worksheets("Scriptsheet").Range(Worksheets("Scriptsheet").Cells(1, 1), Worksheets("Scriptsheet").Cells(18, 18))

End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 2019-03-26
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多