Note: The other languages of the website are Google-translated. Back to English
English English

วิธีล็อคหรือตรึงแท็บแผ่นงานใน Excel

สมมติว่าคุณมีสมุดงานซึ่งมีหลายแผ่นงานจะมีแผ่นงานชื่อแผ่นงานหลักเป็นแท็บแรกในสมุดงาน และตอนนี้คุณต้องการพยายามล็อกหรือตรึงแท็บแผ่นงานนี้เพื่อให้มองเห็นได้ตลอดเวลาแม้ว่าจะเลื่อนไปตามแผ่นงานหลายแผ่น ในความเป็นจริงไม่มีวิธีโดยตรงในการตรึงแท็บ แต่คุณสามารถใช้วิธีแก้ปัญหาเพื่อจัดการกับปัญหานี้ได้

ล็อกหรือตรึงแท็บแผ่นงานเฉพาะด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา ล็อกหรือตรึงแท็บแผ่นงานเฉพาะด้วยรหัส VBA

ใน Excel เราสามารถใช้รหัส VBA ต่อไปนี้เพื่อสร้างแผ่นงานเฉพาะก่อนแท็บแผ่นงานที่คลิกปัจจุบันของคุณเสมอเพื่อให้คุณสามารถเห็นแผ่นงานนี้ได้เสมอเมื่อคุณเลื่อนไปตามแท็บแผ่นงานอื่น ๆ กรุณาดำเนินการดังนี้:

1. กด ALT + F11 และจะเปิดไฟล์ หน้าต่าง Microsoft Visual Basic for Applications.

2. จากนั้นเลือก สมุดงานนี้ จากด้านซ้าย นักสำรวจโครงการ บานหน้าต่างให้ดับเบิลคลิกเพื่อเปิดไฟล์ โมดูลจากนั้นคัดลอกและวางโค้ด VBA ต่อไปนี้ลงในโมดูลเปล่า:

รหัส VBA: ตรึงหรือล็อกแท็บแผ่นงานเฉพาะ

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Update by Extendoffice
Application.EnableEvents = False
Application.ScreenUpdating = False
If Application.ActiveSheet.Index <> Application.Sheets("Main-sheet").Index Then
    Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index)
    Application.Sheets("Main-sheet").Activate
    Sh.Activate
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

doc-freeze-sheet-tab-1

3. จากนั้นบันทึกและปิดรหัสนี้ตอนนี้เมื่อคุณคลิกแท็บแผ่นงานใด ๆ ของคุณแผ่นงานเฉพาะนี้จะอยู่ที่ด้านหน้าของแท็บแผ่นงานที่คุณคลิกเสมอดูภาพหน้าจอ:

doc-freeze-sheet-tab-2
-1
doc-freeze-sheet-tab-3

หมายเหตุ: ในรหัสด้านบนแผ่นงานหลักคือชื่อแผ่นงานที่คุณต้องการตรึงคุณสามารถเปลี่ยนได้ตามต้องการ


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

วิธีการตรึงบานหน้าต่างใน Excel 2010

จะใช้บานหน้าต่างตรึง / ยกเลิกการตรึงกับแผ่นงานหลายแผ่นพร้อมกันได้อย่างไร


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (10)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เมื่อฉันใช้ VBA ฉันไม่สามารถคัดลอกข้อมูลจากแผ่นหลักไปยังชีตอื่นได้ โปรดช่วยฉันแก้ไขข้อผิดพลาดนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฮ่าๆๆๆ จริง! คุณพบวิธีแก้ไขสำหรับสิ่งนี้หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ไม่สามารถรับรหัสของคุณทำงานได้ แต่อันนี้ทำได้ :) Private Sub Workbook_SheetActivate (ByVal Sh As Object) Dim sc As Long ' จำนวนแผ่น Dim NewPos As Long ' ดัชนีของ Application.EnableEvents = False Application.ScreenUpdating = False ถ้า ActiveSheet.Index 1 จากนั้น sc = Sheets.Count NewPos = ActiveSheet.Index For i = 2 To NewPos - 1 Sheets(2).Move After:= Sheets(sc) Next i Sheets(1).Activate Sheets(2) เปิดใช้งาน End หาก Application.ScreenUpdating = True Application.EnableEvents = True End Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เป็นไปได้ไหมที่จะสร้างรายการที่มีหลายอาร์กิวเมนต์? เหมือนกับแทนที่จะย้ายแผ่นงานหลักแผ่นเดียวไปไว้ข้างหน้าตำแหน่งที่คุณทำงานอยู่ เป็นไปได้ไหมที่จะย้ายแท็บสามแท็บข้างหน้าสิ่งที่คุณกำลังทำงานอยู่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช่ เป็นไปได้ คุณเพียงแค่ต้องเพิ่มอาร์กิวเมนต์เพิ่มเติมให้กับ if clause โดยใช้ "AND" เช่น IF Application.ActiveSheet.Index Application.Sheets("Main-sheet")).Index AND Application.ActiveSheet.Index Application ชีต ("Other-Main-sheet") .Index และอื่นๆ... จากนั้น Application.Sheets("Main-sheet") ย้ายก่อน:=Application.Sheets(Application.Sheets("Other-Main-sheet") .Index) Application.Sheets("Main-sheet")).Activate Application.Sheets("Other-Main-sheet").Move Before:=Application.Sheet(Application.ActiveSheet.Index) Application.Sheets("อื่นๆ-หลัก -sheet") เปิดใช้งาน Sh.Activate สิ่งนี้จะวางแผ่นงานหลัก จากนั้นจึงวางแผ่นงานหลักอื่นไว้ด้านหน้าแผ่นงานที่ใช้งานอยู่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่คือ vba แผ่นงาน excel ของฉันไม่ค้าง โปรดให้วิธีแก้ปัญหากับฉัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัสนี้ทำงานได้ดี ปัญหาเดียวคือ...หากเราปิดไฟล์แล้วเปิดใหม่อีกครั้ง ไฟล์จะหายไป
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
[quote]โค้ดนี้ใช้ได้ดี ปัญหาเดียวคือ...หากเราปิดไฟล์แล้วเปิดใหม่อีกครั้ง ไฟล์จะหายไปBy ซัง[/quote] ลองบันทึกเอกสารเป็น Macro-Enabled Workbook ฉันคิดว่ามันควรจะทำงานได้ดีแบบนั้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ตามที่ Thuyen ชี้ให้เห็นเมื่อ 2 ปีที่แล้ว คุณไม่สามารถคัดลอกข้อมูลระหว่างชีตในขณะที่โค้ดนี้ทำงานอยู่ นอกจากนี้ โค้ดยังซับซ้อนโดยไม่จำเป็น แผ่นงานที่คุณเปิดใช้งานจะถูกส่งไปยังขั้นตอนเป็นพารามิเตอร์ "Sh" ทำให้ไม่จำเป็นต้องเรียกใช้ "ActiveSheet" บ่อยๆ และอาจทำให้เกิดปัญหากับผู้ที่พยายามแก้ไขโค้ดแต่ไม่มีประสบการณ์มากนัก

นี่คือเวอร์ชันของฉันที่แก้ไขปัญหาเหล่านั้น และยังแสดงวิธีเพิ่มแผ่นงาน "หลัก" ที่ 2 (คล้ายกับที่ Dzingai โพสต์):
-------------------------------------------------- ---------------

'2 บรรทัดนี้ไม่จำเป็นหากคุณใช้ชื่อรหัสของชีต' ซึ่งฉันแนะนำ
ชุด shtMain1 = แผ่นงาน ("แผ่นงานหลัก-1")
ชุด shtMain2 = แผ่นงาน ("แผ่นงานหลัก-2")

ถ้า Application.CutCopyMode = False แล้ว
ถ้า Sh.Index <> shtMain1.Index และ Sh.Index <> shtMain2.Index แล้ว
shtMain1.Move before:= Sh
shtMain2.Move before:= Sh
Sh.เปิดใช้งาน
End If
End If
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
chăng đc gi cả ​​. ฉัง
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ