VBA - 在userform内调用函数会导致奇怪的错误

时间:2016-08-31 06:04:20

标签: excel vba

我在用户窗体中的按钮执行子程序时遇到Excel中的奇怪错误。

表单的目的是将新产品插入一长串产品及其详细信息中。被调用的子例程选择产品列表中的范围,并在范围上调用insert方法。

这个子程序执行后,Excel开始表现得非常奇怪。如果我选择一个单元格并输入到来的字符然后按Enter键,单元格不会更新。无法对产品列表表进行任何修改,我甚至无法通过为窗口右上角的X提供时钟来退出Excel。有时当发生这种情况时,其他工作表中的行会发生变化

Excel再次响应的唯一方法是导航到另一个工作表并修改一个单元格,这似乎可以直接设置所有内容。

当我从工作表上的按钮或宏菜单中运行相同的子程序时,问题不会发生。

有关此处可能发生的事情的任何建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Selection.ShapeRange.Name获取所选形状的名称。如果Selection.ShapeRange没有name属性,则需要捕获将引发的Error 5 'Invalid procedure call or argument


    Dim ShapeName As String

    On Error Resume Next
    ShapeName = Selection.ShapeRange.Name
    On Error GoTo 0
    If InStr(ShapeName, "Text Box") Then
        'Do Something
    End If