Mình record macro tạo pivot table sau đó định chỉnh sửa lại theo ý mình mà bị báo lỗi tại dòng này:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Sheets("Sheet1").Range("A1").CurrentRegion.Address, Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=Sheets("Sheet1").Range("A1"), TableName:="PivotTable3", DefaultVersion _
:=xlPivotTableVersion15
Đây là code của mình, các bạn xem lại giúp với.
Sub pivot()
Dim WbCopy, WbMain As Workbook, WsMain, WsCopy As Worksheet
Dim fso As Object, RngC, RngD As Range, Path, Filename
Dim FileNo, i As Integer, lastrow As Long, startrow As Long, endrow As Long
Filename = Application.GetOpenFilename("Excel Files (*.xls*),*.xlsx", , , , True)
If Not IsArray(Filename) Then Exit Sub
'Chon file giay bao de tao bang pivot
Set fso = CreateObject("Scripting.FileSystemObject")
For FileNo = LBound(Filename) To UBound(Filename)
WbCopy = fso.getfilename(Filename(FileNo))
Set WbCopy = Workbooks.Open(WbCopy)
Set WsCopy = Worksheets(1)
lastrow = WsCopy.UsedRange.Rows.Count
WsCopy.Range("A1").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Sheets("Sheet1").Range("A1").CurrentRegion.Address, Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=Sheets("Sheet1").Range("A1"), TableName:="PivotTable3", DefaultVersion _
:=xlPivotTableVersion15
Sheets("Sheet1").Select
With ActiveSheet.PivotTables("PivotTable3").PivotFields("DV")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("LG_THANG")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("SOHD")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DNVHG"), "Sum of DNVHG", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DV_BHXH"), "Sum of DV_BHXH", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DV_BHYT"), "Sum of DV_BHYT", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("NVBHXH"), "Sum of NVBHXH", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("NVBHYT"), "Sum of NVBHYT", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DV_BHTN"), "Sum of DV_BHTN", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("NVBHTN"), "Sum of NVBHTN", xlSum
ActiveWindow.SmallScroll Down:=3
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("TTN"), "Sum of TTN", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("PHI_CD"), "Sum of PHI_CD", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("TIEN_DVP"), "Sum of TIEN_DVP", xlSum
ActiveSheet.PivotTables("PivotTable3").RowAxisLayout xlTabularRow
ActiveSheet.PivotTables("PivotTable3").PivotFields("LG_THANG").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("PivotTable3").PivotFields("DV").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("PivotTable3").PivotFields("SOHD").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
Rows("3:61").Select
Selection.Copy
Sheets.Add before:=ActiveSheet
ActiveSheet.Paste
Cells.Select
Cells.EntireColumn.AutoFit
Range("A17:B17").Select
Application.CutCopyMode = False
Selection.FillDown
Range("A18:B18").Select
Selection.FillDown
Range("A19:B19").Select
Selection.FillDown
Range("A21:B21").Select
Selection.FillDown
Range("A31:B31").Select
Selection.FillDown
Range("A45:B45").Select
Selection.FillDown
Range("A54:B54").Select
Selection.FillDown
Range("A59:B59").Select
Selection.FillDown
Rows("1:1").Select
Selection.Font.Bold = True
Columns("E:H").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Columns("I:J").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Next FileNo
Range("B3").Select
End Sub
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Sheets("Sheet1").Range("A1").CurrentRegion.Address, Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=Sheets("Sheet1").Range("A1"), TableName:="PivotTable3", DefaultVersion _
:=xlPivotTableVersion15
Đây là code của mình, các bạn xem lại giúp với.
Sub pivot()
Dim WbCopy, WbMain As Workbook, WsMain, WsCopy As Worksheet
Dim fso As Object, RngC, RngD As Range, Path, Filename
Dim FileNo, i As Integer, lastrow As Long, startrow As Long, endrow As Long
Filename = Application.GetOpenFilename("Excel Files (*.xls*),*.xlsx", , , , True)
If Not IsArray(Filename) Then Exit Sub
'Chon file giay bao de tao bang pivot
Set fso = CreateObject("Scripting.FileSystemObject")
For FileNo = LBound(Filename) To UBound(Filename)
WbCopy = fso.getfilename(Filename(FileNo))
Set WbCopy = Workbooks.Open(WbCopy)
Set WsCopy = Worksheets(1)
lastrow = WsCopy.UsedRange.Rows.Count
WsCopy.Range("A1").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Sheets("Sheet1").Range("A1").CurrentRegion.Address, Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=Sheets("Sheet1").Range("A1"), TableName:="PivotTable3", DefaultVersion _
:=xlPivotTableVersion15
Sheets("Sheet1").Select
With ActiveSheet.PivotTables("PivotTable3").PivotFields("DV")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("LG_THANG")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("SOHD")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DNVHG"), "Sum of DNVHG", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DV_BHXH"), "Sum of DV_BHXH", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DV_BHYT"), "Sum of DV_BHYT", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("NVBHXH"), "Sum of NVBHXH", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("NVBHYT"), "Sum of NVBHYT", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("DV_BHTN"), "Sum of DV_BHTN", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("NVBHTN"), "Sum of NVBHTN", xlSum
ActiveWindow.SmallScroll Down:=3
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("TTN"), "Sum of TTN", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("PHI_CD"), "Sum of PHI_CD", xlSum
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("TIEN_DVP"), "Sum of TIEN_DVP", xlSum
ActiveSheet.PivotTables("PivotTable3").RowAxisLayout xlTabularRow
ActiveSheet.PivotTables("PivotTable3").PivotFields("LG_THANG").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("PivotTable3").PivotFields("DV").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("PivotTable3").PivotFields("SOHD").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
Rows("3:61").Select
Selection.Copy
Sheets.Add before:=ActiveSheet
ActiveSheet.Paste
Cells.Select
Cells.EntireColumn.AutoFit
Range("A17:B17").Select
Application.CutCopyMode = False
Selection.FillDown
Range("A18:B18").Select
Selection.FillDown
Range("A19:B19").Select
Selection.FillDown
Range("A21:B21").Select
Selection.FillDown
Range("A31:B31").Select
Selection.FillDown
Range("A45:B45").Select
Selection.FillDown
Range("A54:B54").Select
Selection.FillDown
Range("A59:B59").Select
Selection.FillDown
Rows("1:1").Select
Selection.Font.Bold = True
Columns("E:H").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Columns("I:J").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Next FileNo
Range("B3").Select
End Sub