我试图创建一个交互式工作簿,允许在工作表中跟踪项目,但只有一个输入表。当前代码从输入工作表中获取项目属性,并在工作簿中的一个新工作表上创建两个命名表。
工作表上的第一个命名表来自“A2:P3”,这是我想添加行的表。工作表上的第二个命名表来自“A20:AB 28”,但它是硬编码的,从单元格“A20”开始,我宁愿它在向上面的表添加行时不移动。
当我尝试向已创建的工作表/表格添加新的项目行时,就会出现问题。当我到达专门用于添加新行的代码行时,我得到了错误1004。当工作表上的第二个命名表不存在时,代码可以工作,但是一旦我添加了第二个命名表,我就会得到错误。
这是在工作簿Excel对象中,它没有显示任何问题,在活动工作表之间移动,“i”变量表示应该激活的工作表。
我试过使用ListList.Add Position:=1,AlwaysInsert:=True,但这不起作用,也不能在中间步骤中删除lrow变量。
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
当我调试时,项目表引用了正确的工作表和工作簿中正确的表。当第二个表(也是命名的)在工作表中时,它就不起作用了。
1条答案
按热度按时间ddrv8njm1#
尝试这个稍微不同的方法: