ฉันยังใหม่กับ VBA และฉันกำลังพยายามเขียนโค้ดที่เลือกรับช่วงของเซลล์ทั้งหมดในแผ่นงานอื่นที่ไม่ใช่แผ่นงานปัจจุบัน พิมพ์ในกล่องข้อความ (เพื่อการทดสอบ) และกลับสู่แผ่นงานต้นฉบับ . ฉันตั้งใจจะใช้ช่วงนี้เพื่อสร้างตารางสรุปข้อมูลในแผ่นงานใหม่ และสุดท้ายแล้วก็ต้องอยู่ในรูปแบบ "R1C1:R929C25
" ในการดำเนินการนี้ ฉันใช้โค้ดที่พบที่นี่:
คุณจะเลือกอย่างไร แผ่นงาน Excel ทั้งหมดที่มี Range โดยใช้ Macro ใน VBA?
นี่คือรหัสที่ฉันมีจนถึงตอนนี้:
Sheets("My_Sheet_Name").Cells.Select
MsgBox (Str(Range(Cells.Address)))
Sheets(Sheets.Count).Select
อย่างไรก็ตาม สิ่งนี้จะส่งคืนข้อผิดพลาด:
ข้อผิดพลาดรันไทม์ '1004':
เลือกวิธีการของคลาส Range ล้มเหลว
แก้ไข: ฉันได้รับรหัสเพื่อรับช่วงแล้ว แต่ฉันจะทำให้เป็นรูปแบบ "R1C1:R929C25
" ได้อย่างไร
รหัสการทำงานที่เสร็จสมบูรณ์:
Dim rng As Range
Set rng = Sheets("My_Sheet").UsedRange
Dim rc_range
rc_range = "R" & Trim(Str(rng.Rows.Count)) & "C" & Trim(Str(rng.Columns.Count))
MsgBox (rc_range)
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"My_Sheet!R1C1:" & rc_range, Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:=ActiveSheet.Name + "!R4C4",
TableName:=inputValue + "_PivotTable" _ , DefaultVersion:=xlPivotTableVersion10