我有一个简单的vba问题。我想要一个在我的表对象("Table1")中恰好添加4个新列的宏。我还希望这些名称按从左到右的顺序命名:
AHT,目标AHT,转移,目标转移
下面的代码很好地添加了列,但我不确定如何单独命名它们。另外,谁能告诉我如何循环这段代码。谢谢!
Sub insertTableColumn()
Dim lst As ListObject
Dim currentSht As Worksheet
Set currentSht = ActiveWorkbook.Sheets("Sheet1")
Set lst = ActiveSheet.ListObjects("Table1")
'below is the code that I would like to have looped
lst.ListColumns.Add
lst.ListColumns.Add
lst.ListColumns.Add
lst.ListColumns.Add
End Sub发布于 2016-06-02 04:11:01
变量数组是在循环序列中存储变量的好地方。
Sub insertTableColumn()
Dim lst As ListObject
Dim currentSht As Worksheet
Dim h As Long, hdrs As Variant
hdrs = Array("AHT", "Target AHT", "Transfers", "Target Transfers")
Set currentSht = ActiveWorkbook.Sheets("Sheet1")
Set lst = ActiveSheet.ListObjects("Table1")
With lst 'ActiveSheet.ListObjects("Table1")
For h = 0 To 3
.ListColumns.Add
.ListColumns(.ListColumns.Count).Name = hdrs(h)
Next h
End With
End Sub当以这种方式创建字符串数组时,请记住变量数组的索引在默认情况下是从零开始的。
发布于 2016-06-02 04:15:47
下面的代码创建一个由您想要添加的列名组成的数组,然后按照要添加的标题数多次循环,并同时设置列名。
Sub insertTableColumn()
Dim lst As ListObject
Dim currentSht As Worksheet
Set currentSht = ActiveWorkbook.Sheets("Sheet1")
Set lst = ActiveSheet.ListObjects("Table1")
ColumnNames = Array("AHT", "Target AHT", "Transfers", "Target Transfers")
' below is the code that I would like to have looped
For iLoop = 0 to UBound(ColumnNames)
Set oLC = lst.ListColumns.Add
oLC.Name = ColumnNames(iLoop)
Next
End Subhttps://stackoverflow.com/questions/37577495
复制相似问题