所以我是VBA的新手,並試圖在工作項目中發現某些東西,這會讓我瘋狂。Excel VBA從表中創建數據透視表
我有一個宏來清理我的數據並把它放到一個表中,然後我正在處理一個宏來獲取該表並將其轉換爲數據透視表/圖表。第一個宏在電子表格「DailyData」上創建Table1。作爲參考,那就是:
Sub Format_Table()
Dim target As Worksheet
Set target = ThisWorkbook.Worksheets(1)
target.Name = "DailyData"
Worksheets("DailyData").Range("AB:AB,O:P,C:K,A:A").EntireColumn.Delete
Worksheets("DailyData").UsedRange
Worksheets("DailyData").UsedRange.Select
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
tbl.TableStyle = "TableStyleMedium15"
tbl.HeaderRowRange.Cells(1, 1).Value = "Date"
tbl.HeaderRowRange.Cells(1, 3).Value = "Machine"
Worksheets("DailyData").Cells.EntireColumn.AutoFit
End Sub
我的樞軸是理想將有「料號」作爲行字段,然後在「設置時間」「間接勞動」,「勞動時間」,「標準的勞動時間」「勞動效率「作爲價值領域。
到目前爲止,我還沒有能夠得到的數值字段的一個露面的權利更別說5。所以我現在試圖讓第一值字段顯示正確如下:
Sub sbCreatePivot()
Dim ws As Worksheet
Dim pc As PivotCache
Dim pt As PivotTable
Set ws = Worksheets.Add
Set pc = ActiveWorkbook.PivotCaches.Create(xlDatabase, "DailyData!Table1")
Set pt = pc.CreatePivotTable(ws.Range("B3"))
With pt
With .PivotFields("Part Number")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Labour Hours")
.Orientation = xlColumnField
.Position = 1
End With
.AddDataField .PivotFields("Labour Hours"), "Labour Hours", xlSum
End With
End Sub
我真的很感謝這個幫助,因爲我對這一切都很陌生,並且在這裏盡力而爲,但是我在錯誤之後繼續打錯,並且無法通過Google的方式運行。
感謝, 泰勒
您是否嘗試過錄制宏並修改它以符合您的喜好? – Maldred
我記錄了它,但是當我在新的工作表上嘗試它時,也就是第二天將被宏拖動和編輯的數據,它將失敗。 –