[英]Short-cut for selecting excel ready-made cell formatting. NOT formatting to table.
[英]VBA for Table Formatting.
我有sheet1,sheet2,sheet3,sheet4。
在這4張工作表中,工作表1和工作表2在列表中有數據。 sheet3和sheet4具有相同的數據透視表。
我想要一個VBA,以這種方式,在我的工作簿中,如果找到帶有列表的工作表,則應將其格式化為表格。 該表應僅適用於它具有值的單元格。
我使用了記錄宏來獲取代碼,但是我對如何為所有工作表實現它感到驚訝。 代碼,來自一張紙的記錄宏:
sub macro()
Cells.Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$1:$1048576"), , xlYes).Name = _
"Table2"
Cells.Select
ActiveSheet.ListObjects("Table2").TableStyle = "TableStyleLight9"
End Sub
我認為您的意思類似於以下代碼:
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
如果您的問題是Listobject的更改范圍,請查看以下代碼。
Sub macro()
Dim Ws As Worksheet
Dim LstObj As ListObject
Dim rngDB As Range, n As Integer
For Each Ws In Worksheets
With Ws
Set rngDB = .Range("a1").CurrentRegion
For Each LstObj In Ws.ListObjects
LstObj.Unlist
Next
If WorksheetFunction.CountA(rngDB) > 0 Then
n = n + 1
Set LstObj = .ListObjects.Add(xlSrcRange, rngDB, , xlYes)
With LstObj
.Name = "Table" & n
.TableStyle = "TableStyleLight9"
End With
End If
End With
Next Ws
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.