Page 1 of 1

Record Macro แต่ไม่สามารถรัน Code ได้

Posted: Mon Mar 20, 2023 5:47 pm
by Jajunoz
รบกวนสอบถามพี่ๆครับ
ผม Record Macro Pivot แล้วกดรันไม่ผ่าน >> สาเหตุมาจากอะไร ต้องแก้ไขยังไงบ้างครับ
จังหวะที่ขึ้นสีเหลืองว่า Runtime error '5': Invalid procedure call or argument
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Table1", Version:=8).CreatePivotTable TableDestination:="Pivot Data!R1C1" _
, TableName:="PivotTable15", DefaultVersion:=8

ผมลองทั้ง record ปกติ กับลองหา Code อื่นมาปรับใช้ ก็ยังไม่ได้

1. Pivot_Normal_Record > ผม Record Macro ธรรมดา แต่เอามารันไม่ผ่าน >> Code:
Sub Pivot_Normal_Record()
'
' Pivot_Normal_Record Macro
'

'
Sheets("DATA").Select
Range("Table1[[#Headers],[Plant]]").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Application.CutCopyMode = False
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Table1", Version:=8).CreatePivotTable TableDestination:="Pivot Data!R1C1" _
, TableName:="PivotTable15", DefaultVersion:=8
Sheets("Pivot Data").Select

2. CopyCodetoTest > ผมไป Copy Code อื่นที่รันได้มาปรับใช้ (เข้าใจว่า มันต้อง String Data) แต่ก็ยังรันไม่ผ่าน
Sub CopyCodetoTest()


' PivotGRWetLine Macro
Sheets("DATA").Select
Dim dataname As String
Sheets("DATA").Select
dataname = ActiveSheet.ListObjects(1).Name

Sheets("DATA").Select
Range("A1").Select

Range("Table1[[#Headers],[Plant]]").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
dataname, Version:=xlPivotTableVersion15).CreatePivotTable TableDestination _
:="Pivot Data!R1C1", TableName:="PVGICL", DefaultVersion:= _
xlPivotTableVersion15

Re: Record Macro แต่ไม่สามารถรัน Code ได้

Posted: Mon Mar 20, 2023 6:28 pm
by snasui
:D กรุณาใส่ Tag ของ Code ให้แสดงเป็น Font แบบ Code ดูกฎการใช้บอร์ดข้อ 5 ด้านบนประกอบครับ :roll:

สำหรับ Code ที่แนบมามี 2 ประเด็นที่น่าจะสร้างปัญหา คือ Code ที่ได้จากการ Record Macro ไม่ได้ใส่ ' ครอบชื่อชีตใน Code และตัว Parameter ที่เป็น Version

ลองปรับเป็นด้านล่างแล้วทดสอบดูใหม่ครับ

Code: Select all

'Other code
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "Table1", Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:="'Pivot Data'!R1C1" _
    , TableName:="PivotTable15", DefaultVersion:=xlPivotTableVersion14
'Other code

Re: Record Macro แต่ไม่สามารถรัน Code ได้

Posted: Sun Mar 26, 2023 12:28 pm
by Jajunoz
แก้ไขตาม สามารถรัน Code ได้แล้วครับ

ขอบคุณมากๆครับ