方法范围失败

时间:2017-07-17 08:36:30

标签: excel vba excel-vba

我正在尝试生成一个函数,用于将数据从一个电子表格提取到另一个电子表格,但不断获取全局方法范围错误。它的第4行产生错误。任何解决方案?

Sub potential()

    'Add hours for potential work to generate function

    Worksheets("Resource Forecast").Select

    ***p = Range("Potential Person").End(xlDown).Row - Range("Potential Person").Row*** (error line)

    Worksheets("Resourcing Sit-Rep").Select

    For k = 1 To p

        For j = 1 To 187
            If Range("hours").Offset(k, j).Value > 0 Then

            Sheets("Resource Forecast").Select
                Val5 = Range("person").Offset(k, 1).Value
                Val6 = Range("person").Offset(k).Value
                Val7 = Range("hours").Offset(k, j).Value
                Val8 = Range("date").Offset(0, j).Value

            Sheets("Resourcing Sit-Rep").Select
                A = Range("Leader").Offset(0, 2).End(xlDown).Row - Range("Leader").Offset(0, 2).Row + 1

                Range("Leader").Offset(A, 2).Formula = Sheets("Resource Forecast").Range("Project_Number").Value & " (" & Sheets("Resource Forecast").Range("Project_Name").Value & ") - " & Val5 & " POTENTIAL WORK"
                Range("Leader").Offset(A, 3).Formula = Val6
                Range("Leader").Offset(A, 4).Formula = Val7 / 7.5
                Range("Leader").Offset(A, 5).Formula = Val8

             Else

             End If

        Next j

    Next k
    Range("Leader").Offset(1, 0).Resize(1, 2).AutoFill Destination:=Range("A4", Cells(Range("Leader").Offset(0, 2).End(xlDown).Row, 2)), Type:=xlFillDefault

End Sub

1 个答案:

答案 0 :(得分:0)

从该行中删除End(xlDown)

要执行您想要的操作,您可以使用以下内容(使用间接引用):

Range("Area2").Cells(1, 1).Row - Range("Area1").Cells(1, 1).Row - Range("Area1").Rows.Count

在这里,您只计算第一行Area1和第一行Area2之间的行数,然后从该区域中的行数减去。