VBA多命名表工作表中ListObject添加行报1004错误求助
问题描述
我正在制作一个项目跟踪用的交互式工作簿,所有项目信息仅通过单个输入表录入。当前逻辑是从输入表提取项目属性,在对应新工作表中创建两个命名表:
- 第一个表位于
A2:P3,是需要添加行的目标表 - 第二个表固定在
A20:AB28,要求添加行时不能移动它的位置
现在遇到的问题:当工作表中存在第二个命名表时,执行向第一个表添加行的代码会触发1004错误;删除第二个表后代码可正常运行。代码放置在工作簿的Excel对象中,切换工作表无问题,变量i用于指定要操作的工作表。
我尝试过使用ListRows.Add Position:=1, AlwaysInsert:=True,也移除过lrow中间变量,但均无效。调试已确认ProjectTable正确引用了目标工作表和表,但只要存在第二个表就会报错。
代码片段
Dim i As Variant, tbl As String, ProjectTable As ListObject, lrow As ListRow ' Define Working Sheet/Client i = Worksheets("Create New Project").Range("New_Project_Client_Name").Value tbl = (i & "Project") Debug.Print (tbl) 'Set Project Table Name Set ProjectTable = Worksheets(i).ListObjects(i & "Project") Debug.Print (Worksheets(i).Name) Debug.Print (ProjectTable.Name) ' Find last row in Named Project Table Set lrow = ProjectTable.ListRows.Add 'Row where error occurs lrow.Range.Select lrow.Range(1).Value = Range("New_Project_Client_Name").Value lrow.Range(2).Value = Range("New_Project_Name").Value lrow.Range(3).Value = Range("New_Project_Budget").Value lrow.Range(4).Value = Range("New_Project_Status").Value lrow.Range(5).Value = Range("New_Project_Invoice_Type").Value lrow.Range(6).Value = Range("New_Project_Prepaid").Value
内容的提问来源于stack exchange,提问作者FionaFire
相关产品推荐
相关产品推荐

