我在用户窗体中的按钮执行子程序时遇到Excel中的奇怪错误。
表单的目的是将新产品插入一长串产品及其详细信息中。被调用的子例程选择产品列表中的范围,并在范围上调用insert方法。
这个子程序执行后,Excel开始表现得非常奇怪。如果我选择一个单元格并输入到来的字符然后按Enter键,单元格不会更新。无法对产品列表表进行任何修改,我甚至无法通过为窗口右上角的X提供时钟来退出Excel。有时当发生这种情况时,其他工作表中的行会发生变化
Excel再次响应的唯一方法是导航到另一个工作表并修改一个单元格,这似乎可以直接设置所有内容。
当我从工作表上的按钮或宏菜单中运行相同的子程序时,问题不会发生。
有关此处可能发生的事情的任何建议吗?
答案 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