Thông tin hữu ích trên thanh trạng thái

Ai đó thích, nhưng cá nhân tôi chỉ cần một thanh trạng thái trong 2-3 trường hợp:

  • sau khi lọc, nó hiển thị số lượng giá trị còn lại sau khi lựa chọn
  • khi một phạm vi được chọn, nó sẽ hiển thị tổng, trung bình và số lượng các ô đã chọn
  • trong trường hợp tệp nặng, bạn có thể xem tiến trình tính toán lại các công thức trong sách.

Không quá nhiều đối với một dòng chiếm gần như toàn bộ chiều rộng của màn hình và luôn bị treo trên đó. Hãy cố gắng mở rộng danh sách khiêm tốn này và thêm một vài tính năng hữu ích vào nó 🙂

Nguyên tắc chung để quản lý thanh trạng thái

Quản lý thanh trạng thái với Visual Basic rất dễ dàng. Để hiển thị văn bản của bạn trong đó, bạn có thể sử dụng một macro đơn giản:

Sub MyStatus () Application.StatusBar = "Привет!" Kết thúc Sub  

Sau khi chạy nó, chúng tôi nhận được:

Thông tin hữu ích trên thanh trạng thái

Để khôi phục trạng thái ban đầu của thanh trạng thái, bạn sẽ cần cùng một "chống macro" ngắn gọn:

Sub MyStatus_Off () Application.StatusBar = False End Sub  

Trong phiên bản cơ bản, như bạn có thể thấy, mọi thứ rất đơn giản. Bây giờ chúng ta hãy cố gắng phát triển ý tưởng…

Địa chỉ của phạm vi đã chọn trong thanh trạng thái

 Ở góc trên bên trái của cửa sổ Excel trong thanh công thức, bạn luôn có thể thấy địa chỉ của ô hiện tại. Nhưng nếu toàn bộ phạm vi được chọn, thì thật không may, chúng tôi sẽ không thấy địa chỉ lựa chọn ở đó - cùng một ô hoạt động duy nhất được hiển thị:

Thông tin hữu ích trên thanh trạng thái

Để giải quyết vấn đề này, bạn có thể sử dụng một macro đơn giản sẽ hiển thị địa chỉ của vùng đã chọn trên thanh trạng thái. Hơn nữa, macro này sẽ được khởi chạy tự động, với bất kỳ thay đổi nào về lựa chọn trên bất kỳ trang tính nào - đối với điều này, chúng tôi sẽ đặt nó trong trình xử lý sự kiện Lựa chọnThay đổi cuốn sách của chúng tôi.

Mở Visual Basic Editor bằng nút cùng tên trên tab nhà phát triển (Nhà phát triển) hoặc phím tắt Alt trái + F11. Tìm sách của bạn ở góc trên bên trái của bảng Dự án và mở mô-đun trong đó bằng cách nhấp đúp Cuốn sách này (Sách bài tập này):

Trong cửa sổ mở ra, sao chép và dán mã macro sau:

Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено:" & Selection.Address (0, 0) End Sub  

Bây giờ, khi bất kỳ phạm vi nào được chọn (bao gồm nhiều hơn một!), Địa chỉ của phạm vi đó sẽ được hiển thị trên thanh trạng thái:

Thông tin hữu ích trên thanh trạng thái

Để ngăn việc hợp nhất địa chỉ của một số phạm vi được chọn bằng Ctrl, bạn có thể thêm một cải tiến nhỏ - sử dụng chức năng Replace để thay thế dấu phẩy bằng dấu phẩy bằng dấu cách:

Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено:" & Replace (Selection.Address (0, 0), ",", ",") End Sub  

Số ô đã chọn trong thanh trạng thái

Khi bất kỳ phạm vi nào được chọn, số lượng ô đã chọn không trống được hiển thị ở bên phải của thanh trạng thái theo mặc định. Đôi khi bạn cần biết số lượng được phân bổ. Tác vụ này cũng có thể được thực hiện bằng một macro đơn giản để xử lý sự kiện sách SelectionChange, như trong ví dụ trước. Bạn sẽ cần một macro như:

Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range For Each rng In Selection. . Đếm 'số cột CellCount = CellCount + RowsCount * ColumnsCount' tích lũy tổng số ô Tiếp theo 'hiển thị trên thanh trạng thái Application.StatusBar = "Đã chọn:" & CellCount & "ô" End Sub  

Macro này lặp qua tất cả các vùng được chọn bằng Ctrl (nếu có nhiều hơn một), lưu trữ số hàng và cột trong mỗi vùng trong các biến RowsCount và ColumnsCount, đồng thời tích lũy số ô trong biến CellCount, sau đó được hiển thị trên thanh trạng thái. Tại nơi làm việc, nó sẽ trông như thế này:

Thông tin hữu ích trên thanh trạng thái

Tất nhiên, bạn có thể kết hợp macro này và macro trước đó để hiển thị cả địa chỉ của dải ô đã chọn và số lượng ô cùng một lúc. Bạn chỉ cần thay đổi một dòng áp chót thành:

Application.StatusBar = "Selected:" & Replace (Selection.Address (0, 0), ",", ",") & "- tổng" & CellCount & "ô"  

Sau đó, bức tranh sẽ khá tuyệt vời:

Thông tin hữu ích trên thanh trạng thái

Vâng, tôi nghĩ bạn hiểu được ý tưởng. Đề xuất trong các nhận xét - điều gì khác sẽ hữu ích để hiển thị trên thanh trạng thái?

  • Macro là gì, cách chúng hoạt động, cách sử dụng và tạo chúng
  • Lựa chọn tọa độ thuận tiện trên trang tính Excel
  • Cách làm cho các công thức phức tạp trở nên trực quan hơn

Bình luận