在表Excel VBA中插入新列

det*_*lly 3 excel vba excel-vba

我在我正在构建的工作表上遇到了一些问题.我想在表中的特定位置插入一列,然后设置标题.

我搜索了一会儿,发现(某些版本)以下代码:

ActiveSheet.Columns(2).Insert
Run Code Online (Sandbox Code Playgroud)

这适用于插入列,但我不知道如何在此之后更改表的标题.

此外,我之前在这里有一些建议,即在表的末尾添加列并命名它们.

代码是:

Dim oSh As Worksheet
Set oSh = ActiveSheet
Dim oLc As ListColumn
Set oLc = oSh.ListObjects("PropTable").ListColumns.Add

oLc.Name = "XYZ"
Run Code Online (Sandbox Code Playgroud)

我尝试以各种方式结合这两种方法,但我没有运气.有没有办法修改第二个代码块,以便它在特定位置插入一列,而不是只添加一列?

谢谢.

-Sean

小智 12

可以使用相同的代码行将列添加到特定位置的表中并对其进行命名.

Table.ListColumns.Add(2).Name = "New Header"
Run Code Online (Sandbox Code Playgroud)

这将在表格的第二列左侧添加一列,并将其命名为New Header.您可以通过在您知道其名称的列的左侧添加一列来使您的代码动态化.这样,没有必要指定新列的固定位置的整数值.

Dim newColNum as Integer
newColNum = Range("Table[Column Name]").Column
Table.ListColumns.Add(newColNum).Name = "New Header"
Run Code Online (Sandbox Code Playgroud)

[列名]是表中要插入新列的列的名称.它可以在表中有任何位置,您可以将它的值作为整数传递给Add.


ste*_*nci 5

  Dim Table As ListObject
  Set Table = Sheet1.ListObjects("Table1")
  Table.ListColumns.Add 2
  Table.HeaderRowRange(2) = "New header"
Run Code Online (Sandbox Code Playgroud)