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

วิธีทำให้ตัวแบ่งส่วนข้อมูลของตาราง Pivot เคลื่อนที่ด้วยการเลื่อนแผ่นงานใน Excel

ในขณะที่ทำงานกับ Pivot Table คุณสามารถแทรกตัวแบ่งส่วนข้อมูลเพื่อกรองข้อมูลที่มองเห็นได้ของตาราง บทความนี้พูดถึงการทำให้ตัวแบ่งส่วนข้อมูลของ Pivot Table มองเห็นได้ตลอดเวลาในขณะที่เลื่อนแผ่นงาน

ทำให้ตัวแบ่งส่วนข้อมูลของ Pivot Table เคลื่อนที่ด้วยการเลื่อนแผ่นงานด้วยรหัส VBA


ทำให้ตัวแบ่งส่วนข้อมูลของ Pivot Table เคลื่อนที่ด้วยการเลื่อนแผ่นงานด้วยรหัส VBA


สคริปต์ VBA ต่อไปนี้สามารถช่วยให้คุณเก็บตัวแบ่งส่วนข้อมูลของ Pivot Table ไปพร้อมกับเวิร์กชีตได้ กรุณาดำเนินการดังนี้

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

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

รหัส VBA: ทำให้ตัวแบ่งส่วนข้อมูลของ Pivot Table เคลื่อนที่ด้วยการเลื่อนแผ่นงาน

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ShF As Shape
    Dim ShM As Shape
    'specify a slicer
    Application.ScreenUpdating = False
    Set ShF = ActiveSheet.Shapes("Column1")
    Set ShM = ActiveSheet.Shapes("Column2")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
        ShF.Top = .Top
        ShF.Left = .Left + 300
        ShM.Top = .Top
        ShM.Left = .Left + 100
    End With
    Application.ScreenUpdating = True
End Sub

หมายเหตุ:

1). ในรหัส Column1 และ Column2 เป็นชื่อของตัวแบ่งส่วนข้อมูล

2). คุณสามารถระบุตำแหน่งของตัวแบ่งส่วนข้อมูลในขณะที่เลื่อนแผ่นงานในโค้ด

3). และคุณสามารถเพิ่มตัวแบ่งส่วนข้อมูลเพิ่มเติมลงในโค้ดหรือลบตัวแบ่งส่วนข้อมูลออกได้ตามที่คุณต้องการ

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

จากนี้ไปตัวแบ่งส่วนข้อมูลที่ระบุจะถูกย้ายไปพร้อมกับเซลล์ที่ใช้งานอยู่ในขณะที่เลื่อนแผ่นงาน ดูภาพหน้าจอ:


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


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

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 นี้

ฉันไม่มีความคิดเกี่ยวกับ VBA เลยและด้วยเหตุนี้คำถามของฉัน

ฉันใช้ VBA นี้และฉันมีคำถาม
ฉันจะแก้ไข VBA นี้เพื่อให้ทำงานได้เพียงแผ่นเดียวได้อย่างไร

ตอนนี้ ฉันมีแผ่นงาน 8 แผ่น และทุกครั้งที่ไปที่แผ่นงานอื่น มันล้มเหลวและขอให้ฉันสิ้นสุดหรือแก้ไขข้อบกพร่อง
ฉันได้ทำตามวิธีที่แสดงด้านบนแล้ว


นี่คือ VBA ของฉันที่นี่ ..
สมุดงานย่อยส่วนตัว_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range)
Dim ShF เป็นรูปร่าง
Dim ShM เป็นรูปร่าง
'ระบุตัวแบ่งส่วนข้อมูล
Application.ScreenUpdating = เท็จ
ตั้งค่า ShF = ActiveSheet.Shapes ("ไคลเอนต์ 1")
ตั้งค่า ShM = ActiveSheet.Shapes ("ตัวเตือน 1")
'เปลี่ยนตำแหน่งของตัวแบ่งส่วนข้อมูล
ด้วย Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top + 2
ShF.Left = .Left + 475
ShM.Top = .Top + 180
ShM.Left = .Left + 475
จบด้วย
Application.ScreenUpdating = จริง
ย่อยสิ้นสุด


กรุณาช่วย.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
ขอบคุณสำหรับ VBA นี้

ฉันไม่มีความคิดเกี่ยวกับ VBA เลยและด้วยเหตุนี้คำถามของฉัน

ฉันใช้ VBA นี้และฉันมีคำถาม
ฉันจะแก้ไข VBA นี้เพื่อให้ทำงานได้เพียงแผ่นเดียวได้อย่างไร

ตอนนี้ ฉันมีแผ่นงาน 8 แผ่น และทุกครั้งที่ไปที่แผ่นงานอื่น มันล้มเหลวและขอให้ฉันสิ้นสุดหรือแก้ไขข้อบกพร่อง
ฉันได้ทำตามวิธีที่แสดงด้านบนแล้ว


นี่คือ VBA ของฉันที่นี่ ..
สมุดงานย่อยส่วนตัว_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range)
Dim ShF เป็นรูปร่าง
Dim ShM เป็นรูปร่าง
'ระบุตัวแบ่งส่วนข้อมูล
Application.ScreenUpdating = เท็จ
ตั้งค่า ShF = ActiveSheet.Shapes ("ไคลเอนต์ 1")
ตั้งค่า ShM = ActiveSheet.Shapes ("ตัวเตือน 1")
'เปลี่ยนตำแหน่งของตัวแบ่งส่วนข้อมูล
ด้วย Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top + 2
ShF.Left = .Left + 475
ShM.Top = .Top + 180
ShM.Left = .Left + 475
จบด้วย
Application.ScreenUpdating = จริง
ย่อยสิ้นสุด


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

แผ่นงานย่อยส่วนตัว_SelectionChange(ByVal Target As Range)
Dim ShF เป็นรูปร่าง
Dim ShM เป็นรูปร่าง
'ระบุตัวแบ่งส่วนข้อมูล
Application.ScreenUpdating = เท็จ
ตั้งค่า ShF = ActiveSheet.Shapes ("ผลไม้")
ตั้งค่า ShM = ActiveSheet.Shapes ("ลดราคา")
'เปลี่ยนตำแหน่งของตัวแบ่งส่วนข้อมูล
ด้วย Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .ท็อป
ShF.Left = .Left + 300
ShM.Top = .ด้านบน
ShM.Left = .Left + 100
จบด้วย
Application.ScreenUpdating = จริง
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คริสตัลที่รัก

ขอบคุณมากสำหรับรหัส
ฉันทำตามที่คุณพูดและมันได้ผลเหมือนมีเสน่ห์

ชื่นชมมันจริงๆ
ไชโย :)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันได้อัปเดตรหัสของฉันตามที่คุณระบุไว้แล้ว ตัวแบ่งส่วนข้อมูลจะไม่เลื่อนไปตามหน้าต่างอีกต่อไป แต่ถ้าฉันคลิกในเซลล์ใหม่ ตัวแบ่งส่วนข้อมูลจะย้าย นี่เป็นพฤติกรรมที่ถูกต้องหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
แถวแรกบ่งบอกอะไรและเราปรับแต่งให้เหมาะกับตัวแบ่งส่วนข้อมูลของเราได้อย่างไร
ฉันสับสนมากเกี่ยวกับเรื่องนั้นในทุกบรรทัด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน Katie
ฉันไม่รู้ว่าฉันเข้าใจคำถามของคุณทั้งหมดหรือไม่
ดังที่ได้กล่าวไว้ใน Notes ข้างต้น คุณต้องแทนที่ Column1 และ Column2 ด้วยชื่อของตัวแบ่งส่วนข้อมูลของคุณในโค้ด เพื่อให้ตัวแบ่งส่วนข้อมูลเลื่อนไปตามเวิร์กชีต
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีตัวแบ่งส่วนข้อมูล 4 ตัวที่จัดกลุ่มไว้ด้วยกันโดยเลือกทั้ง 4 ตัวแล้วคลิกขวาเพื่อใช้คำสั่งกลุ่ม

เป็นไปได้ไหมที่จะกำหนด VBA นี้โดยกลุ่ม? คุณติดป้ายกำกับกลุ่มและเขียน VBA อย่างไรเพื่อให้รู้ว่าเป็นกลุ่มเดียวกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีไมเคิล
ขอโทษที่ช่วยเรื่องนี้ไม่ได้ ขอบคุณสำหรับความคิดเห็นของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ตกลงดังนั้นชื่อจึงบอกว่า "วิธีทำให้ตัวแบ่งส่วนข้อมูลของตาราง Pivot เคลื่อนที่ด้วยเวิร์กชีต เลื่อน ใน Excel" แต่โค้ด VBA นี้ใช้กับเซลล์ที่เลือกในปัจจุบันเท่านั้น เราจะทำเพื่อ . ได้อย่างไร การเลื่อน ของเวิร์กบุ๊ก ไม่ใช่เฉพาะเซลล์ที่เลือกใช่หรือไม่
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ