簡體   English   中英

對象'_Worksheet'的方法'Range'失敗

[英]Method 'Range' of object '_Worksheet' failed

我正在嘗試使用以下代碼通過從另一個表中獲取數據來生成一張表上的數據。 我已經花了一段時間與VBA做類似的事情,直到現在才遇到這個問題。 我已經查看了很多其他問題但是沒有找到我需要的相同錯誤。

我的代碼開始崩潰只有消息“400”,所以我添加了錯誤處理程序,現在得到消息:

對象'_Worksheet'的方法'Range'失敗。

我的代碼(在表“買家”):

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表明它不是問題。 (“買家”和“屬性”都有一個公共的FullRange功能,每個功能都指他們自己的工作表。兩者都被其他地方的代碼廣泛使用,沒有問題。)

我也嘗試完全刪除With塊,以防產生一些奇怪的沖突,但結果是相同的。

事實證明,在Excel或我的計算機引擎蓋下發生了一些腥味。 在發布之前我已經退出並重新打開了Excel,但后來我開始得到一些古怪的行為(例如Macro從運行宏菜單中消失)所以我重新啟動整個機器。 我原來的代碼現在工作正常。 謝謝你和我一起看。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM