将新行添加到表

时间:2015-11-27 10:49:51

标签: excel forms vba excel-vba listbox

我不知道为什么,但是当我尝试执行此Excel退出而不保存任何内容时:

  1. Sheet1我有11行x 6 cols格式为表格。第一行为表格标题。

  2. 我使用名称管理器将col A指定为STU_ID命名范围。

  3. 我在Userform上只有一个listbox。我将RowSource属性设为=STU_ID。我在列表框中获得了col A数据。

  4. 现在,当我转到Sheet1并尝试在表格的下一行添加更多数据时。 Excel退出说它已停止工作。 Windows正在检查错误,并在空白Workbook上重新启动。

  5.   

    列表框不应该是动态的,并且当我将它们添加到工作表上时从名称管理器获取数据吗?

    我在Win 10 64位上使用MS Excel Pro 13.

1 个答案:

答案 0 :(得分:3)

这是Excel中的错误。要解决此问题,请使用.List属性而不是.RowSource

在UserForm的代码中尝试类似的内容:

Private Sub UserForm_Initialize()
  ListBox1.List = Range("table1[abc]").Value
End Sub

通过这种方式,它将是动态的,并且可以正常工作。

如果在显示用户窗体时需要更改它,请在Sheet change事件中添加一个小代码,每次更改工作表时都会更新列表。 (只有当您的表单是模态的,并且您希望它反映实时更改时,才需要这样做。)