我创建了一个宏,它自动获取一系列单元格并将它们格式化为表格。
我已将默认表名设置为“Table11”,但由于Table11只能存在于工作簿中一次,如果我尝试多次运行宏,我将遇到错误。
有没有办法修改我的代码来说“如果table11存在,那么将名称更改为table12”?
我并不关心调用新表名的是什么,但我希望代码可以根据需要经常使用,这样如果已经使用了table11,请将其命名为table12。如果table12已被使用,请使用table13等...
这是我的代码:
Sub formatMacro()
Application.ScreenUpdating = False
ActiveCell.CurrentRegion.Select
ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes).Name = "Table11"
Range("Table11[#All]").Select
ActiveSheet.ListObjects("Table11").TableStyle = "TableStyleLight9"
With Selection
.HorizontalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
ActiveSheet.ListObjects("Table11").ShowTableStyleColumnStripes = True
Selection.Columns.AutoFit
Selection.Rows.AutoFit
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:4)
无需为表命名。使用With ActiveSheet.ListObjects.Add(...)
处理新添加的表格。
Sub CreateAndFormatTable()
Application.ScreenUpdating = False
With ActiveSheet.ListObjects.Add(xlSrcRange, ActiveCell.CurrentRegion, , xlYes)
.TableStyle = "TableStyleLight9"
With .Range
.HorizontalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
.ShowTableStyleColumnStripes = True
.Range.Columns.AutoFit
.Range.Rows.AutoFit
End With
Application.ScreenUpdating = True
End Sub