ไปยังเนื้อหาหลัก

วิธีอ้างอิงแผ่นงานตามหมายเลขดัชนีแทนชื่อใน Excel

สำหรับผู้ใช้ Excel จำนวนมากพวกเขามักจะเปลี่ยนชื่อแผ่นงานเริ่มต้นเป็นชื่อที่ต้องการ แต่ในหลายกรณีพวกเขาจำเป็นต้องอ้างอิงเวิร์กชีตตามหมายเลขดัชนีแทนที่จะเป็นชื่อจริง จะบรรลุได้อย่างไร? คุณสามารถลองใช้วิธีการในบทความ

แผ่นงานอ้างอิงตามหมายเลขดัชนีแทนชื่อด้วยฟังก์ชันที่ผู้ใช้กำหนดเอง


แผ่นงานอ้างอิงตามหมายเลขดัชนีแทนชื่อด้วยฟังก์ชันที่ผู้ใช้กำหนดเอง

โปรดทำดังนี้เพื่ออ้างอิงแผ่นงานตามหมายเลขดัชนีแทนชื่อใน Excel

1 กด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูล. จากนั้นคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูล

รหัส VBA: แผ่นงานอ้างอิงตามหมายเลขดัชนีใน Excel

Function SHEETNAME(number As Long) As String
    SHEETNAME = Sheets(number).Name
End Function

3 กด อื่น ๆ + Q ปุ่มเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

หมายเหตุ / รายละเอียดเพิ่มเติม:

1. หากคุณต้องการอ้างอิงชื่อแผ่นงานบางแผ่นพร้อมหมายเลขโปรดเลือกเซลล์ว่างและป้อนสูตร = SHEETNAME (1) ลงในแถบสูตรโดยตรงจากนั้นกดปุ่ม Enter ดูภาพหน้าจอ:

2. หากคุณต้องการรับค่าเซลล์จากแผ่นงานตามหมายเลขดัชนีโปรดใช้สูตรนี้

=INDIRECT("'"&SHEETNAME(1) &"'!A1")

3. และถ้าคุณต้องการรวมคอลัมน์ใดคอลัมน์หนึ่งในแผ่นงานตามหมายเลขดัชนีโปรดใช้สูตรนี้

=SUM(INDIRECT("'"&SHEETNAME(1) &"'!C2:C7"))


บทความที่เกี่ยวข้อง:

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I've successfully implemented the above VBA and formulas. I'm trying to add an additional function. I would like to SUM the same cells across all sheets (created and not yet created) using the above SHEETNAME VBA, but I can seem to figure out how to assemble the formula to make it work. Any ideas? I've tried the following and minor variants, but excel no longer thinks it a formula. =SUM(INDIRECT("'"&SHEETNAME(4) &"'!R7":"'"&SHEETNAME(5) &"'!R7"))
This comment was minimized by the moderator on the site
If you use this UDF, I'd suggest Making two changes in bold below, with notes on why.
Function SHEETNAME(number As Long) As StringApplication.Volatile <--------- this makes the function recalculate when you change the sheets name. Otherwise when you change the sheet name it doesn't change unless you perform a manual recalculation.----------
SHEETNAME = Thisworkbook.Sheets(number).Name <------ If you use this function in multiple workbooks, it will only check names of the workbook the function is in. Otherwise this function will potentially call the tab names from other open Workbooks with this formula.-------
End Function
This comment was minimized by the moderator on the site
Thank you very much for the script and the additions! Exactly what I was looking for without any prior knowledge about VBAs.
This comment was minimized by the moderator on the site
Nice solution. Also, referencing cell B4 of the first sheet in another Excel file can be done like this: =INDIRECT("'[other_filename.xlsx]"&SHEETNAME(1) &"'!B4") However note that the file containing the VBA script needs to be stored as a macro file, .xlsm Cheers,
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations