首次运行后VBA代码中断-错误91

时间:2019-01-09 17:56:06

标签: excel vba

我正在尝试通过使用代码来插入/复制/粘贴值和公式来半自动化文件。当我运行此代码一次时,它可以正常工作。尝试在任何后续时间运行代码会导致“运行时错误'91'”。调试错误时突出显示了代码,其中我尝试使用短语“ na.Row”来调用代码中前面标识的行号。

注意:我是VBA的新手,没有任何编码背景。我敢肯定它会更加简洁明了。

Sub AdvtoStd_Click()

'Names the Worksheets

    Dim ws As Worksheet
    Set ws = Worksheets("Org")

    Dim ar As Worksheet
    Set ar = Worksheets("Adv. Retrieve")

    Dim sr As Worksheet
    Set sr = Worksheets("Std. Retrieve")


'Finds the cell with 'No_Account' and names it id

    Dim na As Range
    Set na = ws.Range("A:A").Find("No_Account", LookIn:=xlValues)

    Dim Aacts As Range
    Set Aacts = ar.Range("A:A").Find("Accounts", LookIn:=xlValues, LookAt:=xlWhole)


'Clears the old numbers on the Retail worksheet

    Worksheets("Retail").Activate
    Range("A4:E2000").ClearContents

'Copies the accounts from the Org to Retail worksheet

    ws.Range("A4:A2000").Copy
    Sheets("Retail").Range("A4:A2000").PasteSpecial xlPasteValues

'Inserts the VLookup into cells B4 and C4 + Inserts the Variance calculation in cell E4
'Copies the VLookup and Variance calculation down to 'No_Account'

    Sheets("Retail").Range("B4").Value = "=VLOOKUP(A4,'Adv. Retrieve'!A:I,3,FALSE)"
    Sheets("Retail").Range("C4").Value = "=VLOOKUP(A4,'Std. Retrieve'!A:I,3,FALSE)"
    Sheets("Retail").Range("E4").Value = "=C4-B4"
    Sheets("Retail").Range("B4:E4").Copy
    Sheets("Retail").Range("B5", Sheets("Retail").Range("E" & na.Row)).PasteSpecial xlPasteFormulas

'Calculates the TOTALs

    Sheets("Retail").Range("B" & na.Row + 2).Value = "=SUM(OFFSET(B1,,,ROW()-1,1))"
    Sheets("Retail").Range("C" & na.Row + 2).Value = "=SUM(OFFSET(C1,,,ROW()-1,1))"

'Copies the Hyperion values

    ar.Range("B" & Aacts.Row).Copy
    Sheets("Retail").Range("B" & na.Row + 3).PasteSpecial xlPasteValues

该错误发生在我试图将B:E列中的公式粘贴到“帐户名”以A列结尾的行号的代码部分中。

就像我之前提到的那样,当我打开文件并运行一次该代码时,该代码完全可以按预期运行,但是任何第二次尝试运行该代码都会产生错误“ 91”。

0 个答案:

没有答案