我有一个用于财务记录的 Excel 2010 工作簿。在一张工作表上,我有一个菜单。在这个菜单中,我选择了一个带有附加宏的按钮,它隐藏了构成菜单的单元格并取消隐藏事务输入表单。
此交易输入表单包含几个在这里无关紧要的值。输入数据后,您点击适当标记的输入按钮。现在,当我编写文档时,此按钮工作正常;它进入记录工作表,在正确的表中插入一个空白行,返回表单,复制数据,返回新的空白行,然后插入数据。然后它在日期列上按最新到最旧的排序,以确保条目的顺序正确。最后它返回表单并清除数据。这工作得很好,直到我决定隐藏历史记录表。
当我决定隐藏工作表时,我重新录制了宏,取消隐藏工作表执行操作并重新隐藏工作表。现在,当我运行宏时,它会取消隐藏工作表。然后它挂起并出现“运行时错误'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,因此记录宏而不是编写它们,我无法对此做出头或故事。
编辑:好的,我已经弄清楚如何引用表格:
Worksheets("Transaction History").ListObjects("thistory").ListRows.Add (1)
所以从那里开始,我将重新编写整个内容,尝试在 VBA 中完成,而不是记录它。谷歌是我的朋友。感谢你的帮助。非常感谢您继续提供的任何帮助。