2016-03-25 40 views
1

我在工作表上有77个表,我只想格式化特定的表。VBA Excel循环通过特定表到格式

当使用特定命名表执行循环时,我该如何格式化循环?

例如,我想更改表2,表4,表5和表6中的第二列(本例的缩短列表)。

到目前为止,我有:

For Table2, Table4, Table 5 In ws.ListObjects 

上的错误继续下一步

ws.ListObjects("Table").ListColumns(2).DataBodyRange.Style = "Comma" 
ws.ListObjects("Table").ListColumns(2).DataBodyRange.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)" 

Next 

On Error GoTo 0 

如何解决这个有什么建议?

回答

0
Sub test() 
Dim AllTableNames As String 
Dim TableNames As Variant 
Dim ws As Worksheet 
Dim i As Long 

Set ws = ActiveSheet 
AllTableNames = "Table2,Table4,Table5,Table6" 
TableNames = Split(AllTableNames, ",") 

For i = LBound(TableNames) To UBound(TableNames) 
    ws.ListObjects(TableNames(i)).ListColumns(2).DataBodyRange.Style = "Comma" 
    ws.ListObjects(TableNames(i)).ListColumns(2).DataBodyRange.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)" 
Next i 
End Sub 
+1

完美!感谢您的帮助。 –