iT邦幫忙

0

VBA創建樞紐分析表

  • 分享至 

  • xImage
Sheets(2).Select
Sheets(2).Name = "Subtract back"
Range("A2:AO35555").Select![!
Range("F10").Activate
Selection.Copy
Sheets.Add after:=ActiveSheet
Worksheets(3).Name = "work"
ActiveSheet.Paste
Rows("1:2").Select
Range("A2").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Columns("B:C").Select
Selection.Delete Shift:=xlToLeft
Range("D2").Select
Sheets.Add
![ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "work!R1C1:R35552C39", Version:=xlPivotTableVersion10).CreatePivotTable _
    TableDestination:="樞紐!R1C1", TableName:="樞紐分析表1", DefaultVersion:= _
    xlPivotTableVersion10]

https://ithelp.ithome.com.tw/upload/images/20230216/201474387bkyRsuBq6.png]
程式碼如上,我想要創建樞紐分析表,並指定名稱。
錄製的時候是直接新增sheet,可是如果是要再跑一次,
第一次新增會叫做工作表一,第二次就會變成二...持續增加。
想要在這段程式碼修改,但是直接指定名稱還是不行。
求大老解惑,謝謝
![ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"work!R1C1:R35552C39", Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="樞紐!R1C1", TableName:="樞紐分析表1", DefaultVersion:= _
xlPivotTableVersion10]

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
JamesDoge
iT邦高手 1 級 ‧ 2023-02-16 19:52:04
最佳解答

獲取最新創建的工作表的索引:

Dim newSheetIndex As Integer
newSheetIndex = Sheets.Count

將該索引添加到工作表名稱中,並指定樞紐分析表的名稱:

Dim newSheetIndex As Integer
newSheetIndex = Sheets.Count
Sheets.Add after:=ActiveSheet
ActiveSheet.Name = "work" & newSheetIndex
ActiveSheet.Paste

' 設定樞紐分析表的名稱
Dim pivotTableName As String
pivotTableName = "樞紐分析表" & newSheetIndex

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "work" & newSheetIndex & "!R1C1:R35552C39", Version:=xlPivotTableVersion10).CreatePivotTable _
    TableDestination:="樞紐!R1C1", TableName:=pivotTableName, DefaultVersion:= _
    xlPivotTableVersion10

rain_yu iT邦研究生 5 級 ‧ 2023-02-17 08:57:32 檢舉

謝謝大老,
我還有幾個問題想問
我後續執行,發現有三行代碼,是創建時樞紐分析表預設的,
但是會出錯。

    .DisplayFieldCaptions = True

.DisplayMemberPropertyTooltips = False
.DisplayContextTooltips = True
.ShowDrillIndicators = True
.PrintDrillIndicators = False
.AllowMultipleFilters = True
.SortUsingCustomLists = True
.FieldListSortAscending = False
.ShowValuesRow = True
.CalculatedMembersInFilters = False
.RowAxisLayout xlTabularRow

我修改的時候直接將這三行刪除,可以成功運行。
但我還是搞不懂這三個的作用。
像是原本false改成true也沒用

其他代碼有正常跑出來了,感謝!

我要發表回答

立即登入回答