用于表格格式的VBA。

时间:2017-06-27 11:33:13

标签: excel vba excel-vba

我有sheet1,sheet2,sheet3,sheet4。

在4张表中,表1和表2列出了数据。并且sheet3和sheet 4具有相同的Pivot表。

我希望有一个VBA,以这种方式,在我的工作簿中,如果它找到带有列表的表格,那么它应该将其格式化为表格。该表应仅适用于具有值的单元格。

我使用了记录宏来获取代码,但我很震惊我应该如何为我的所有表格实现它。 代码,来自一张纸的记录宏:

sub macro()
  Cells.Select
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$1:$1048576"), , xlYes).Name = _
        "Table2"
    Cells.Select
    ActiveSheet.ListObjects("Table2").TableStyle = "TableStyleLight9"
End Sub

Normally, when i copy from data source, it resembles like below image

I want a VBA that changes the above figure like this without Manual Operation.

2 个答案:

答案 0 :(得分:2)

我认为你的意思类似于下面的代码:

Option Explicit

Sub macro()

Dim ws As Worksheet
Dim ListObj As ListObject

For Each ws In ThisWorkbook.Worksheets
    With ws
        For Each ListObj In .ListObjects
            ListObj.TableStyle = "TableStyleLight9"
        Next ListObj
    End With
Next ws

End Sub

答案 1 :(得分:0)

如果您的问题是更改范围到Listobject,请查看以下代码。

=IFERROR(AGGREGATE(14;6;A2:K2/(B2:L2="P");1),0)+SUMIF(B2:L2;"S";A2:K2)