You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:35:02