Excel中运行时错误“91”在执行(Excel Run-time error '91

2019-10-16 14:15发布

我有一个Excel 2010工作簿的财务记录。 在一个工作表,我有一个菜单。 在此菜单中,我选择具有附接的宏,其中隐藏从而弥补了菜单和未隐藏了一个交易输入表格的单元的按钮。

本次交易输入表单包含这里是没有结果的几个值。 输入数据后你打的适当标记ENTER键。 现在,当我写这个按钮精细工作的文档; 它去记录表,在正确的表插入一个空行,又回到了形式,复制的数据,又回到了新的空行,并且插入的数据。 然后,它打排序最新到最旧日期列上,以确保项目是按照正确的顺序。 最后,头回到表单并清除数据。 这工作得很好,直到我决定隐藏的历史片。

当我决定要隐藏工作表我重新录制宏取消隐藏片预成型的操作和重新隐藏的工作表。 现在,当我运行宏它取消隐藏的工作表。 它然后用“运行时错误‘91’对象变量或With块变量未设置”错误挂起。 它不会完成宏,留下历史片可见不变与窗体仍然充满数据。

选择在所给出的选项调试时出现错误显示如下:

  Sub transaction()
'
' transaction Macro
'

'
    Sheets("Income").Select
    Sheets("Transaction History").Visible = True
    Selection.ListObject.ListRows.Add (1)
    Sheets("Income").Select
    Range("B6:G6").Select
    Selection.Copy
    Sheets("Transaction History").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("Transaction History").ListObjects("Table9").Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("Transaction History").ListObjects("Table9").Sort. _
        SortFields.Add Key:=Range("Table9[[#All],[Date]]"), SortOn:=xlSortOnValues _
        , Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Transaction History").ListObjects("Table9"). _
        Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("Transaction History").Select
    ActiveWindow.SelectedSheets.Visible = False
    Range("B6:G6").Select
    Selection.ClearContents
    Rows("6:8").Select
    Range("A8").Activate
    Selection.EntireRow.Hidden = False
    Range("B6").Select
    ActiveCell.FormulaR1C1 = "=R[1]C"
    Rows("7:7").Select
    Selection.EntireRow.Hidden = True
    Range("C6").Select
End Sub

与行

Selection.ListObject.ListRows.Add (1)

以黄色突出显示。 我不知道任何VBA,因此录制宏不写他们,我不能让元首也没有这个故事。

编辑:好吧,我已经firgured如何参考下表:

Worksheets("Transaction History").ListObjects("thistory").ListRows.Add (1)

因此,从那里我只是要重新写了整个事情,在VBA要去尝试做它,而不是记录下来。 谷歌是我的朋友。 感谢你的帮助。 任何帮助你继续给予大大apreciated。

Answer 1:

这是你想什么呢?

Sub transaction()
    Dim wbI As Worksheet, wbO As Worksheet

    Set wbI = Sheets("Income")
    Set wbO = Sheets("Transaction History")

    With wbO
        .Visible = True

        .ListObjects("thistory").ListRows.Add (1)

        wbI.Range("B6:G6").Copy

        .Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        With .ListObjects("thistory").Sort
            With .SortFields
                .Clear
                .Add Key:=Range("thistory[[#All],[Date]]"), SortOn:=xlSortOnValues _
                , Order:=xlDescending, DataOption:=xlSortNormal
            End With
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With

        .Visible = False
   End With

   With wbI
        .Range("B6:G6").ClearContents
        .Rows("6:8").Hidden = False
        .Range("B6").FormulaR1C1 = "=R[1]C"
        .Rows(7).Hidden = True
   End With

End Sub


文章来源: Excel Run-time error '91' while executing