บางคนชอบ แต่ฉันต้องการแถบสถานะเป็นการส่วนตัวใน 2-3 กรณีเท่านั้น:
- หลังจากกรองแล้วจะแสดงจำนวนค่าที่เหลืออยู่หลังการเลือก
- เมื่อเลือกช่วง จะแสดงผลรวม ค่าเฉลี่ย และจำนวนเซลล์ที่เลือก
- ในกรณีของไฟล์จำนวนมาก คุณสามารถดูความคืบหน้าในการคำนวณสูตรในหนังสือ
ไม่มากนักสำหรับเส้นที่กินพื้นที่เกือบทั้งความกว้างของหน้าจอและค้างอยู่ตลอดเวลา มาลองขยายรายการเจียมเนื้อเจียมตัวนี้และเพิ่มคุณสมบัติที่มีประโยชน์อีกสองสามรายการ🙂
หลักการทั่วไปในการจัดการแถบสถานะ
การจัดการแถบสถานะด้วย Visual Basic นั้นง่ายมาก ในการแสดงข้อความของคุณ คุณสามารถใช้มาโครง่ายๆ:
สถานะย่อยของฉัน () Application.StatusBar = "Привет!" จบซับ
หลังจากรันแล้วเราได้รับ:
ในการคืนค่าสถานะเดิมของแถบสถานะ คุณจะต้องใช้ "anti-macro" แบบสั้นเดียวกัน:
ย่อย MyStatus_Off() Application.StatusBar = False End Sub
ในเวอร์ชันพื้นฐาน อย่างที่คุณเห็น ทุกอย่างง่ายมาก ทีนี้มาลองพัฒนาแนวคิดกัน…
ที่อยู่ของช่วงที่เลือกในแถบสถานะ
ที่มุมซ้ายบนของหน้าต่าง Excel ในแถบสูตร คุณสามารถดูที่อยู่ของเซลล์ปัจจุบันได้ตลอดเวลา แต่ถ้าเลือกช่วงทั้งหมดแล้ว น่าเสียดายที่เราจะไม่เห็นที่อยู่สำหรับการเลือกที่นั่น – เซลล์ที่ใช้งานอยู่เซลล์เดียวจะปรากฏขึ้น:
ในการแก้ปัญหานี้ คุณสามารถใช้มาโครธรรมดาที่จะแสดงที่อยู่ของพื้นที่ที่เลือกในแถบสถานะ นอกจากนี้ ควรเปิดใช้มาโครนี้โดยอัตโนมัติ โดยมีการเปลี่ยนแปลงการเลือกบนแผ่นงานใดๆ สำหรับสิ่งนี้ เราจะวางมาโครไว้ในตัวจัดการเหตุการณ์ การเลือกเปลี่ยน หนังสือของเรา
เปิด Visual Basic Editor โดยใช้ปุ่มที่มีชื่อเดียวกันบนแท็บ ผู้พัฒนา (ผู้พัฒนา) หรือแป้นพิมพ์ลัด Alt ซ้าย+F11. ค้นหาหนังสือของคุณที่มุมซ้ายบนของแผงโครงการ และเปิดโมดูลในนั้นโดยดับเบิลคลิก หนังสือเล่มนี้ (สมุดงานนี้):
ในหน้าต่างที่เปิดขึ้น ให้คัดลอกและวางโค้ดแมโครต่อไปนี้:
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Selection.Address(0, 0) สิ้นสุดย่อย
ตอนนี้ เมื่อมีการเลือกช่วงใดๆ (รวมถึงมากกว่าหนึ่งช่วงด้วย!) ที่อยู่ของช่วงนั้นจะแสดงอยู่ในแถบสถานะ:
เพื่อป้องกันไม่ให้แอดเดรสของช่วงต่างๆ ที่เลือกด้วย Ctrl รวมกัน คุณสามารถเพิ่มการปรับปรุงเล็กน้อย โดยใช้ฟังก์ชัน Replace เพื่อแทนที่เครื่องหมายจุลภาคด้วยเครื่องหมายจุลภาคด้วยการเว้นวรรค:
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & แทนที่ (Selection.Address(0, 0), ",", ", ") End Sub
จำนวนเซลล์ที่เลือกในแถบสถานะ
เมื่อเลือกช่วงใดๆ จำนวนเซลล์ที่เลือกที่ไม่ว่างเปล่าจะแสดงที่ด้านขวาของแถบสถานะตามค่าเริ่มต้น บางครั้งคุณจำเป็นต้องรู้จำนวนที่จัดสรร งานนี้สามารถทำได้ด้วยแมโครอย่างง่ายเพื่อจัดการกับเหตุการณ์หนังสือ SelectionChange ดังในตัวอย่างก่อนหน้านี้ คุณจะต้องมีมาโครเช่น:
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range For Each rng In Selection.Areas 'วนซ้ำการเลือกทั้งหมด RowsCount = rng.Rows.Count 'จำนวนแถว ColumnsCount = rng.Columns . นับ 'จำนวนคอลัมน์ CellCount = CellCount + RowsCount * ColumnsCount 'สะสมจำนวนเซลล์ทั้งหมด ถัดไป 'แสดงในแถบสถานะ Application.StatusBar = "เลือกแล้ว: " & CellCount & " เซลล์" End Sub
มาโครนี้จะวนซ้ำในพื้นที่ที่เลือกด้วย Ctrl ทั้งหมด (หากมีมากกว่าหนึ่ง) เก็บจำนวนแถวและคอลัมน์ในแต่ละพื้นที่ในตัวแปร RowsCount และ ColumnsCount และสะสมจำนวนเซลล์ในตัวแปร CellCount ซึ่งจะแสดงขึ้นจากนั้น ในแถบสถานะ ในที่ทำงานจะมีลักษณะดังนี้:
แน่นอน คุณสามารถรวมมาโครนี้และมาโครก่อนหน้าเพื่อแสดงทั้งที่อยู่ของช่วงที่เลือกและจำนวนเซลล์พร้อมกันได้ คุณต้องเปลี่ยนบรรทัดสุดท้ายเพียงบรรทัดเดียวเป็น:
Application.StatusBar = "เลือกแล้ว: " & แทนที่ (Selection.Address(0, 0), ",", ", ") & " - รวม " & CellCount & " เซลล์"
จากนั้นภาพจะสวยมาก:
ฉันคิดว่าคุณคงเข้าใจ แนะนำในความคิดเห็น – มีอะไรอีกบ้างที่จะเป็นประโยชน์ที่จะแสดงในแถบสถานะ?
- มาโครคืออะไร ทำงานอย่างไร ใช้อย่างไรและสร้างขึ้นอย่างไร
- การเลือกพิกัดที่สะดวกบนแผ่นงาน Excel
- วิธีสร้างสูตรที่ซับซ้อนให้เห็นภาพมากขึ้น