我不知道为什么,但是当我尝试执行此Excel退出而不保存任何内容时:
在Sheet1
我有11行x 6 cols格式为表格。第一行为表格标题。
我使用名称管理器将col A
指定为STU_ID
命名范围。
我在Userform上只有一个listbox
。我将RowSource属性设为=STU_ID
。我在列表框中获得了col A
数据。
现在,当我转到Sheet1
并尝试在表格的下一行添加更多数据时。 Excel退出说它已停止工作。 Windows正在检查错误,并在空白Workbook
上重新启动。
列表框不应该是动态的,并且当我将它们添加到工作表上时从名称管理器获取数据吗?
我在Win 10 64位上使用MS Excel Pro 13.
答案 0 :(得分:3)
这是Excel中的错误。要解决此问题,请使用.List
属性而不是.RowSource
。
在UserForm的代码中尝试类似的内容:
Private Sub UserForm_Initialize()
ListBox1.List = Range("table1[abc]").Value
End Sub
通过这种方式,它将是动态的,并且可以正常工作。
如果在显示用户窗体时需要更改它,请在Sheet change
事件中添加一个小代码,每次更改工作表时都会更新列表。 (只有当您的表单是模态的,并且您希望它反映实时更改时,才需要这样做。)