通过macrosbutton将列添加到工作表

我想将新列添加到Excel工作表中的表中。 logging一个macros然后把它分配给一个button很容易,但是我的问题是表中的第一行有一个蓝色背景,当我点击button时,列中的第一个单元格有白色背景,而不是蓝色,即使我当我录制macros时改变了它。 我的代码:

Sub AV() ' ' AV Macro ' ' ActiveSheet.Unprotect Password:="P@ssw0rd" Range("Table5[Column53]").Select Selection.ListObject.ListColumns.Add Range("H14").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = -0.499984740745262 .PatternTintAndShade = 0 End With Range("H15").Select ActiveSheet.Protect Password:="P@ssw0rd" End Sub 

试试这个,将listcolumns.add 2改为所需的列。

 Sub AV() ' ' AV Macro ' ' ActiveSheet.Unprotect Password:="P@ssw0rd" ActiveSheet.ListObjects("Table5").ListColumns.Add 2 Range("H14").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = -0.499984740745262 .PatternTintAndShade = 0 End With Range("H15").Select ActiveSheet.Protect Password:="P@ssw0rd" End Sub 

我不认为你需要所有与macroslogging的代码。 如果您只是在表中添加一列,它应该复制现有表的颜色scheme。

唯一需要确定的是“select”在一个有效的表格中。 下面的代码检查这个; 如果select不在有效表格中,则使用活动工作表上的最后一个表格; 或者如果没有表格,则返回错误消息。

其他select可以很容易地适应处理的情况下,select不在有效表内。

另外,代码在表格末尾添加一列 – 如果需要,您可以为添加的列指定不同的位置。


 Option Explicit Sub addColumn() Dim LO As ListObject ActiveSheet.Unprotect Password:="P@ssw0rd" Set LO = Selection.ListObject If LO Is Nothing Then With ActiveSheet Select Case .ListObjects.Count Case 0 MsgBox "No ListObjects on active sheet" Exit Sub Case Is > 0 'select the last table on the sheet Set LO = .ListObjects(.ListObjects.Count) End Select End With End If LO.ListColumns.Add 'Optional to protect the sheet again, if you want 'ActiveSheet.Protect Password:="P@ssw0rd" End Sub