我的Excel工作表中有一个表格,其中行数不断变化。有时可能需要在表的右侧添加新列。
我已经在VBA中使用tbl.ListColumns.Add().Name = temp
完成了这一点,其中temp是我正在创建的新列的标题名称。
现在,问题是,在表的右侧(不是表的一部分),我有一列填充的单元格。当我向表中添加新列时,只有与表直接相邻的单元格向右移动。相邻列中的其他所有内容都保持在其原始位置。
有没有一种方法可以编程地将一个新列插入到右侧表中,同时也移动与该表相邻的整个列的内容?
我试过使用Columns(x).Insert shift:=xlShiftRight
,但除非我用错了,否则它只会向工作表添加一个新列,我仍然需要向表中添加一个新列,这会导致同样的问题。
1条答案
按热度按时间r6l8ljro1#
不使用
ListColumns.Add()
,您可以简单地将一些内容写入表旁边的单元格中。当该列为空时(准确地说,只有表格旁边的单元格需要为空),Excel将自动为表格创建一个新列。然而,不进行移位并且剩余片材的结构保持完整。现在,如果我理解正确的话,表旁边已经有数据了,所以你需要先插入一个新的(Excel-)列。
下面的例程将执行此操作:搜索表格旁边的第一个单元格,插入一列,并在该列的标题行中写入内容。
字符串
假设
tbl
保存对表的引用,temp
保存新列的标题,可以使用型