方法'范围'对象' _Worksheet'失败

时间:2016-07-17 20:15:31

标签: excel vba excel-vba

我尝试使用以下代码通过从另一张纸上获取数据来生成一张纸上的数据。我已经和VBA做了类似的事情了一段时间,直到现在还没有遇到过这个问题。我已经通过相同的错误查看了其他一些问题,但却找不到我需要的内容。

我的代码开始崩溃只有消息" 400",所以我添加了错误处理程序,现在收到消息:

  

方法'范围'对象' _Worksheet'失败。

我的代码(在表格上#34;买家"):

Public Sub MakeSheets(Optional ByVal SortSource As Boolean = False, Optional ByVal ExportSheets As Boolean = False)

    On Error GoTo ErrorMsg

    Dim r, n As Integer 'for looping through [r]ows and iterating [n]ew lines added to sheets

    If SortSource Then 'This code never executes because I'm only using the default boolean values so far
        Sheets("Buyers").UsedRange.Sort key1:=FullRange("NAME"), Header:=xlYes
        Sheets("Properties").UsedRange.Sort key1:=Sheets("Properties").FullRange("STREET NAME"), key2:=Sheets("Properties").FullRange("NUMBER"), Header:=xlYes
    End If

    Sheets("Ownership").Rows("3:" & Sheets("Ownership").UsedRange.Rows.Count).Delete
    n = 2 'last title row of target worksheet
    With Sheets("Properties")
    MsgBox .Cells(3, .FullRange("STREET NAME").Column).Value 'Successfully displays the appropriate cell value
        For r = 2 To .PropertyRows()
            If Not IsEmpty(.Cells(r, .FullRange("OWNER").Column).Value) Then
                n = n + 1
                MsgBox n 'displays "3", confirming this point is successfully reached once.
                'Problem appears to be next line
                Sheets("Ownership").Range("A" & n & ":L" & n).Value = Array( _
                    .Cells(r, .FullRange("MLS#").Column).Value, _
                    .Cells(r, .FullRange("LIST PRICE").Column).Value, _
                    .Cells(r, .FullRange("NUMBER").Column).Value & " " & .Cells(r, .FullRange("STREET NAME").Column).Value, _
                    .Cells(r, .FullRange("OWNER").Column).Value & " " & .Cells(r, .FullRange("OWNED").Column).Value, _
                    .Cells(r, .FullRange("SUBDIVISION").Column).Value, _
                    .Cells(r, .FullRange("COUNTY").Column).Value, _
                    .Cells(r, .FullRange("BED").Column).Value, _
                    .Cells(r, .FullRange("BATH").Column).Value, _
                    .Cells(r, .FullRange("YEAR BUILT").Column).Value, _
                    .Cells(r, .FullRange("TAXES").Column).Value, _
                    .Cells(r, .FullRange("TAX YEAR").Column).Value, _
                    .Cells(r, .FullRange("ACQUISITION DATE").Column).Value)
            End If
        Next r
    End With
    Exit Sub

ErrorMsg:
    MsgBox Err.Description
End Sub

如果需要,我可以发布FullRange的代码,但它会调用其他一些自定义函数,我认为在循环开始之前我投入的MsgBox表明它不是&#39问题。 ("买家"和#34;属性"都有一个公共FullRange功能,每个都参考他们自己的工作表。两者都被其他地方的代码广泛使用而没有问题。)

我还尝试完全删除With阻止,以防造成一些奇怪的冲突,但结果是相同的。

1 个答案:

答案 0 :(得分:0)

事实证明,在Excel或我的计算机的引擎盖下发生了一些可疑的事情。在发布之前我已经退出并重新打开了Excel,但后来我开始得到一些古怪的行为(例如Macro从运行宏菜单中消失)所以我重新启动整个机器。我原来的代码现在工作正常。谢谢你和我一起看。