宏执行时运行时错误“91”
我有一个Excel 2010工作簿,用于财务记录。在一张工作表上我有一个菜单。在这个菜单上,我选择一个带有附加宏的按钮,隐藏组成菜单的单元格并取消隐藏交易输入表单。宏执行时运行时错误“91”
此事务输入包含这里是没有结果的几个值。输入数据后,您可以点击正确标记的输入按钮。现在当我编写文档这个按钮工作正常时,它将记录工作表插入到正确的表中的一个空行,然后回到表单复制数据返回到新的空行并插入数据。然后它会在日期栏中按照最新到最旧的顺序排列,以确保条目按正确的顺序排列。最后它回到表格并清除数据。这工作正常,直到我决定隐藏历史表。
当我决定隐藏工作表我重新录制宏取消隐藏片预成型的操作和重新隐藏的工作表。现在,当我运行宏时,它会隐藏工作表。然后挂起“运行时错误”91“对象变量或块变量未设置”错误。它没有完成这个宏,使得历史表单可见且不变,而表单仍然充满了数据。
选择中所给出的选项调试时出现错误显示了这个:
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,而不是把它记录下来。 Google是我的朋友。感谢你的帮助。你继续给予的任何帮助都会大大降低。
这是你正在尝试?
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
是的。非常感谢。 – SpeedCrazy 2012-04-03 22:27:13
刚才意识到它在插入空行之前实际挂起。 – SpeedCrazy 2012-04-03 21:32:21
'.Select'是导致错误的主要原因:)您应该直接执行操作。现在关于'Selection.ListObject.ListRows.Add(1)'哪个表是'Selection'的,什么是'Selection'? – 2012-04-03 21:37:17
对不起,我的n00bishness在这里,但你究竟是什么意思“直接预制操作”?您的评论的其余部分对我来说同样令人困惑。对不起 – SpeedCrazy 2012-04-03 21:39:12