Excel表:添加空白列和标题vba

时间:2017-01-06 15:43:32

标签: excel vba excel-vba

我有一个excel表,我想为它添加一个列,然后命名标题。不知怎的,我的旧代码不再工作了,我不确定它是否与我有任何关系,使数据范围成为一个表(Name是Table1)。现在代码运行没有错误,但只添加空白列但没有添加标题。我按了 F8 ,看起来它跳过了选择部分并跳到了最后。

表格从A列到AG列指定。我曾经能够插入多个空白列并添加标题就好了。现在我不想指定单元格位置并为其分配单元格值(cell(1, 32).value ="Month"),因为我希望能够灵活地添加我需要的许多列,并像以前一样分别添加标题。

Sub Ins_Blank_Cols_Add_Headers()
 Columns("AF:AG").Insert Shift:=xlToRight
 Columns("AF:AF").Cells(1, 1) = "<<NewHeader>>"
 Columns("AG:AG").Cells(1, 1) = "<<NewHeader>>"
    Dim cnter As Integer

LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
cnter = 0

For i = 1 To LastCol
  If Cells(1, i) Like "<<NewHeader>>*" Then
        Select Case cnter
            Case 0: Cells(1, i).Value = "Month"
            Case 1: Cells(1, i).Value = "Year"
        End Select
        cnter = cnter + 1
    End If
Next i

End Sub

1 个答案:

答案 0 :(得分:1)

停止使用Range.SelectSelection,这对您有好处。

也始终使用完全合格的范围。

您的问题是,当您在表中插入列时,Excel会自动为其分配标题名称。

因此检查空的IF条件失败。因此,没有选择案例调用

更改此

Columns("AF:AF").Select
Selection.Insert Shift:=xlToRight

 Columns("AF:AF").Insert Shift:=xlToRight
 Columns("AF:AF").Cells(1, 1) = "<<NewHeader>>" ' In Table Can't set blank header so use a place holder.

同时更改If条件

If IsEmpty(Cells(1, I)) Then

 If Cells(1, I) Like "<<NewHeader>>*" Then