从一个工作表复制到另一个工作表时出现运行时错误

时间:2014-06-30 13:17:14

标签: excel excel-vba runtime-error copy-paste worksheet-function vba

我有下面列出的代码,我想在if语句中复制包含规则的每一行,并将它们粘贴到第二个工作表中。这就是我所拥有的:

Sub Button1_Click()

    Dim i As Long, j As Long
    Dim mainworkBook As Workbook
    Set mainworkBook = ActiveWorkbook


    Lastrow = Cells(Rows.Count, "Y").End(xlUp).Row
    j = 1

    For i = 5 To Lastrow
        If (IsEmpty(Range(Cells(i, 2), Cells(i, 2)))) Then
            If IsNumeric(Range(Cells(i, 25), Cells(i, 25))) Then
                Range(Cells(i, 1), Cells(i, 1)).Value = "T"
                Range(Cells(i, 2), Cells(i, 24)).Value = Range(Cells(i - 2, 2), Cells(i - 2, 24)).Value
                Range(Cells(i, 26), Cells(i, 26)).Value = Range(Cells(i - 2, 26), Cells(i - 2, 26)).Value
                Range(Cells(i, 28), Cells(i, 28)).Value = Range(Cells(i - 2, 28), Cells(i - 2, 28)).Value
                Range(Cells(i, 30), Cells(i, 36)).Value = Range(Cells(i - 2, 30), Cells(i - 2, 36)).Value
                Range(Cells(i, 38), Cells(i, 39)).Value = Range(Cells(i - 2, 38), Cells(i - 2, 39)).Value
                mainworkBook.Worksheets("a").Rows(i).EntireRow.Copy
                mainworkBook.Worksheets(“b”).Range(Cells(j,1),Cells(j,1).Select
                mainworkBook.Sheets(“b”).Paste
                j = j + 1
            End If
        End If
    Next i

    End Sub

它给了我一个关于" mainworkBook.Worksheets(“b”)的错误。范围(单元格(j,1),单元格(j,1)。选择"行。任何提示?

2 个答案:

答案 0 :(得分:1)

您没有关闭括号。

   mainworkBook.Worksheets("b").Range(Cells(j, 1), Cells(j, 1)).Select

答案 1 :(得分:0)

您无法在工作表上选择不活动的单元格,您也应该使用工作表限定单元格调用。碰巧它只有一个单元格,因此您不需要这种语法,并且更容易直接复制:

mainworkBook.Worksheets("a").Rows(i).EntireRow.Copy Destination:=mainworkBook.Worksheets(“b”).Cells(j,1)