我正在使用Visual Studio Tools for Office(2008)开发Excel 2007加载项.我有一张包含多个ListObjects的工作表,它们在启动时绑定到数据表.当它们被绑定时,它们会正确自动调整大小.
他们被重新绑定时会出现问题.我在功能区栏上有一个自定义按钮,它返回到数据库,并根据用户输入的某些条件检索不同的信息.这个新数据返回并重新绑定到ListObjects - 但是,这次它们没有调整大小并且我得到一个异常:
无法绑定ListObject,因为无法调整其大小以适合数据.ListObject无法添加新行.这可能是由于无法移动列表对象下方的对象而引起的.
内部异常:"Range类的插入方法失败"
原因:Microsoft.Office.Tools.Excel.FailureReason.CouldNotResizeListObject
我无法在Google或MSDN上找到关于此错误的任何有意义的内容.我一直试图弄清楚这一点,但无济于事.
基本代码结构:
//at startup DataTable tbl = //get from database listObj1.SetDataBinding(tbl); DataTable tbl2 = //get from database listObj2.SetDataBinding(tbl2); //in buttonClick event handler DataTable tbl = //get different info from database //have tried with and without unbinding old source listObj1.SetDataBinding(tbl); <-- exception here DataTable tbl2 = //get different info from database listObj2.SetDataBinding(tbl2);
请注意,即使ListObject正在缩小,并且不仅在它增长时,也会发生此异常.