Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 无法删除包含多个表的列_Excel_Vba - Fatal编程技术网

Excel 无法删除包含多个表的列

Excel 无法删除包含多个表的列,excel,vba,Excel,Vba,每当我在同一列中有两个表时,就会出现这个错误 在列中创建表(即B1:C3) 在该表下创建另一个表(即B5:C7) 右键单击B列 “删除”选项是否变灰(不可用) 将第二个表(B5:C7)转换回正常区域 右键单击B列 “删除”选项现在是否处于活动状态(黑色) 是给我的 我不明白为什么会这样,但如果有人能证实我不是唯一一个在这件事上的人,我会非常感激。这实际上似乎是一个错误。这是不允许的,可能是因为删除列会移动单元格。为什么不选择表中的一列来尝试删除 查看屏幕截图如果一次选择一列表,则可以执

每当我在同一列中有两个表时,就会出现这个错误

  • 在列中创建表(即B1:C3)
  • 在该表下创建另一个表(即B5:C7)
  • 右键单击B列
    • “删除”选项是否变灰(不可用)
  • 将第二个表(B5:C7)转换回正常区域
  • 右键单击B列
    • “删除”选项现在是否处于活动状态(黑色)
  • 是给我的


    我不明白为什么会这样,但如果有人能证实我不是唯一一个在这件事上的人,我会非常感激。这实际上似乎是一个错误。

    这是不允许的,可能是因为删除列会移动单元格。为什么不选择表中的一列来尝试删除

    查看屏幕截图如果一次选择一列表,则可以执行此操作
    谢谢

    不幸的是,这是“设计的行为”。ListObject(又名结构化)表有许多内部机制。Delete(column)命令的设计目的不是枚举工作表上的所有ListObject,以查看是否有任何ListObject与要删除的列相交,然后生成专门处理删除表列的子进程,同时记住这将如何影响其他ListObject表。相反,当涉及多个ListObject表时,它根本不允许使用Delete命令。

    尝试以不同的方式组织数据,这样就不会出现这些问题

    没有令人信服的理由在一张工作表上有多个表格。如果表布局存在行/列管理的问题,请考虑移动表以分隔表。 公式中可以通过表名引用表。表列也是如此,所以如果您需要行和列管理的灵活性,就没有理由在一张工作表中保留多个表

    评论后编辑用户正在处理多个表,不能期望用户更改工作表以维护不同工作表上的数据,这一事实可以通过不同的方式解决:

  • 教育您的用户。我非常喜欢教人们如何使用软件。如果他们明白自己在做什么,他们会感到积极。如果你让他们保持沉默,告诉他们“点击这里,闭嘴”,他们可能会感到消极


  • 您可能需要重新考虑您的数据体系结构。为用户提供添加/编辑/删除记录的界面,该界面独立于数据的存储位置。这是2016年。数据输入和数据存储不属于同一页


  • 您将在一个面向热心程序员的网站上发布您的问题。如果您有兴趣解决数据输入/数据存储问题,使用一点VBA将其分离。

    这是“设计行为”。ListObject(又名结构化)表有许多内部机制。Delete(column)命令的设计目的不是枚举工作表上的所有ListObject,以查看是否有任何对象与要删除的列相交,然后生成专门处理删除表列的子流程。相反,当涉及多个ListObject表时,它根本不允许使用Delete命令。请将您的评论作为答案发布,我将接受它。:)我已经发现,我的“解决方案”是循环特定列中应该删除的所有表,并保存它们的地址(减去一列!)和表名。然后我将取消列出所有这些表,删除列,然后重新创建所有表。如果我可以这么说的话,这是一个相当不错的解决办法。这并不能解释为什么可以删除与单个表相交但不与多个表相交的整列。但答案给出了一个线索,即可以通过一次选择一个表来实现这一点。好主意。但是,由于在同一工作表的其他列中有更多的表,因此不能像您建议的那样删除表列。假设有三个表=B1:C3、B5:C7和F2:G8。尝试删除第一个表中的表列。“它不会起作用的。@TAKL-这和原来的情况不同。”。删除第一个表中的列显然会生成格式不正确的第三个表。让我们试着解决你问题中的情况;如果必须,请编辑您的问题以添加其他场景。在这种情况下,令人信服的原因是,将这些表格放在一张工作表中时,使用它们更容易。如果我遵循您的建议(每张表一张),用户将有10多张表可供切换,以便添加或删除数据。另一个想法是不使用所有这些数据类型创建表,但我发现在编码时使用表非常容易。您可能需要重新考虑您的数据体系结构。为用户提供添加/编辑/删除记录的界面,该界面独立于数据的存储位置。这是2016年。数据输入和数据存储不属于同一页。使用工具。我根本没有想过使用界面来添加/编辑/删除记录。它非常简单,我重写代码不会有问题。不要问为什么,但在这里,人们看到(数据存储)表时,他们需要不断地更改它,这种情况非常普遍。谢谢你的建议!我可以纠正你吗:这是“不良设计的行为”: