VBA异常超越

时间:2016-11-01 15:26:33

标签: excel vba excel-vba

我在excel中制作了这个简单的发票控制工作表,我使用VBA使其更容易可视化和添加新项目。我已经制作了许多其他VBA编程的工作表,并且它们都有一个“新的”活动x按钮,编程就像这样:

Private Sub ButtNew2_Click()

Dim Guia As Worksheet
Dim UltLin As Integer

Set Guia = Workbooks("Notas Fiscais.xlsm").Worksheets("Saída")
UltLin = Guia.UsedRange.Rows.Count + 1

Guia.Application.Goto Reference:="R" & UltLin & "C1"
FormNotasSaida.Show
FormNotasSaida.BoxDataEmiss.SetFocus

End Sub

这很简单。只需选择第一个空白行,以便表单加载空白。它在任何其他工作簿中都可以正常工作。但是在这个中,如果我每次单击此按钮,在关闭表单后,下次(并且只有一次)我会以任何可能的方式再次加载表单(双击一个项目,按“显示”按钮或再次按“新建”按钮,它会加载空白或显示上次启动的项目(例如,你这样做)。

关闭它后,我可以点击任何地方或按“显示”按钮,它们一如既往地工作正常。按“新建”按钮后,问题仅发生一次。

我可能做错了什么,特别是知道这种方法在所有其他工作簿中都能完美运行?

1 个答案:

答案 0 :(得分:3)

FormNotasSaida.Show
FormNotasSaida.BoxDataEmiss.SetFocus

表单是一种特殊的类模块,具有设计器和预先声明的ID 属性。这个“预先声明的ID”在这里起作用:您正在使用/重用该类的默认全局实例,并且[除非您使用控件框中的X按钮关闭它,] never { {1}}所以你总是展示相同的形式。

最佳做法是每次使用时创建表单的新实例:

unload