我有一个带有几张纸的 wb,每张都有两个表格(listobjects)。我还有一个用户表单,允许用户从表中添加、编辑、删除行。这些表是静态的,意味着它们永远存在并且永远不会被删除,它们位于同一个地方并且永远不会移动。我还通过索引或名称以不同的方式引用了这些对象,看看这是否有所不同。
有时,当用户对任何表执行添加、编辑或删除操作时,我会收到 1004 运行时错误。不知道为什么,因为我知道该对象存在。出现错误后,excel 似乎失控并关闭,没有保存任何已完成的工作。在下面的代码中,发生了一个错误tbl.ListRows.Add AlwaysInsert:=True
,许多其他人都喜欢它。
我读过某些情况,excel会忘记那些对象在那里,甚至忘记表中有多少记录。
我不确定我是否会得到关于 Excel 为什么这样做的答案......
我的问题是如何有效地捕获此错误,并重置以使 Excel 不会关闭。
Private Sub pg1AddDoCode_Click()
Dim tbl As ListObject
Dim lrow As Integer
Set tbl = ThisWorkbook.Worksheets("Constants").ListObjects("DoCode")
tbl.ListRows.Add AlwaysInsert:=True
lrow = tbl.ListRows.count
With tbl.ListRows(lrow)
.Range(1) = UCase(Me.pg1DoCode)
.Range(2) = UCase(Me.pg1DoName)
End With
ClearValues Me.MultiPage1.Pages(1).Controls
Me.pg1AddDoCode.Enabled = True
Me.pg1EditDoCode.Enabled = False
Me.pg1DelDoCode.Enabled = False
Me.pg1Query.RowSource = tbl.Name
Set tbl = Nothing
End Sub