Trên một bảng tính excel có nhiều cột và nhiều hàng (Excel 2007 có số cột tối đa là 16.384 và số dòng tối đa là 1.048.576). Nhưng thông thường bạn ít khi sử dụng hết. Nên nhiều khi vô tình kéo thanh cuộn xuống dòng 500.000 nhưng quên kéo về chưa kịp gửi cho người khác xem, thấy cũng không tệ chút nào. Để tránh trường hợp đó chúng ta phải giới hạn vùng cuộn của bảng tính, trong bài viết này chúng tôi sẽ hướng dẫn các bạn làm điều nàyThủ thuật giới hạn vùng cuộn của bảng tính trong excel bằng cách ẩn các hàng và cột không cần thiết, xác định vùng sử dụng với Property hoặc cChỉ kích hoạt vùng dữ liệu hiện tại.
Bạn chỉ có thể ẩn các hàng và cột mà bạn muốn ẩn, bằng cách xác định vùng có thể xem hoặc chỉ kích hoạt vùng dữ liệu.
1. Dấu dòng, cột trong Excel:
Cách dễ nhất là ẩn các hàng và cột không sử dụng:
Trên trang tính đang hoạt động, tìm hàng cuối cùng có dữ liệu, bấm vào hàng bên dưới hàng đó, đồng thời nhấn thêm Ctrl Shift mũi tên xuống để chọn đến cuối dòng cuối cùng (1.048.576). Sau đó, trong tab Trang chủlựa chọn Định dạng Ẩn & Bỏ ẩn – Ẩn Hàng trong Excel 2007 hoặc Định dạng – Hàng – Ẩn trong năm 2003 trở về trước, hoặc nhấp chuột phải và chọn Trốn.
Làm tương tự để ẩn các cột không sử dụng: tìm đến cột cuối cùng, bấm chuột vào cột tiếp theo, bấm Ctrl Shift mũi tên phảilựa chọn ẩn cột.
Kết quả như hình, vùng làm việc được bao phủ bởi một màu tối xung quanh và không ai có thể kéo nó đi đâu cả:
2. Xác định diện tích sử dụng theo Thuộc tính:
sử dụng Tài sản của trang tính trong VBA, bạn có thể chỉ định vùng làm việc trong phạm vi mong muốn. Làm như sau:
Bấm chuột phải vào tên sheet trong tab Sheet Names, chọn View code, hoặc nhấn Alt F11, chọn đúng tên sheet trong cửa sổ Project Explorer, sau đó vào khung Property, tìm dòng ScrollArea và gõ địa chỉ vùng mong muốn. ví dụ: $A$1 :$H$50.
Quay trở lại bảng tính và thử kéo thanh cuộn, chúng ta chỉ cuộn được xuống dòng 50 và cuộn ngang đến cột H là tối đa, không cuộn được nữa.
Tuy nhiên, Excel không lưu thuộc tính này khi lưu sổ làm việc, vì vậy lần sau khi mở tệp, bạn phải đặt Tài sản lại. Vì vậy, chúng tôi phải viết một đoạn mã thực hiện điều này mỗi khi chúng tôi kích hoạt trang tính. Vào khu chỉnh sửa code của sheet đúng ý muốn, chọn sự kiện worksheet_activate:
Mã excel VBA:
Bảng phụ riêng tư_Kích hoạt ( )
Me.ScrollArea = “A1:H50”
kết thúc phụ
Giờ đây, mỗi khi bạn kích hoạt trang tính, VBA sẽ chỉ định vùng giới hạn mong muốn.
Tuy không có vùng tối bao quanh như cách trên nhưng bạn không thể scroll ra ngoài vùng đó, bạn thử chọn ô nào nằm ngoài vùng cho phép kể cả cột I, J, K dù bạn có thể nhìn thấy. chỉ vì thèm thuồng.
Ngay cả với những đoạn code VBA bạn tạo sau này, kể cả câu lệnh select 1 ngoài vùng cho phép, hay select cả cột cũng không chọn được.
Để có thể thực thi đoạn mã trên, bạn phải nhập đoạn mã 2 dòng lệnh:
Ở đầu mã thêm dòng: ActiveSheet.ScrollArea = “”
Ở cuối mã, hãy thêm dòng: ActiveSheet.ScrollArea = “$A$1:$G$50”
Ví dụ:
Mã excel VBA:
MyMacro phụ()
ActiveSheet.ScrollArea = “”
Phạm vi (“Z100”).Chọn
Lựa chọn.Font.Bold = True
ActiveSheet.ScrollArea = “$A$1:$G$50”
Trang tính (“Ngân sách hàng ngày”).Chọn
ActiveSheet.ScrollArea = “”
Phạm vi (“T500”).Chọn
Lựa chọn.Font.Bold = Sai
ActiveSheet.ScrollArea = “$A$1:$H$25”
kết thúc phụ
Đoạn mã trên chọn ô Z100 trong trang tính đang hoạt động và đặt nó thành chữ đậm. Sau đó chọn ô T500 ở sheet khác, định dạng chữ thường (không in đậm). Trước khi thực hiện lựa chọn và định dạng trên bất kỳ trang tính nào, vùng cuộn của trang tính đó phải được đặt thành “”. Sau khi định dạng, set trả về giới hạn cuộn mong muốn.
3. Chỉ kích hoạt vùng dữ liệu hiện tại:
Phương pháp này linh hoạt hơn, tự động giới hạn vùng cuộn trang tính cho vừa với vùng dữ liệu của bảng tính mà bạn đặt đoạn mã sau:
Mã excel VBA:
Worksheet phụ riêng tư_Activate( )
Me.ScrollArea =Me.UsedRange. Địa chỉ
kết thúc phụ
Đoạn mã trên sẽ chạy mỗi khi bạn kích hoạt bảng tính mà bạn đặt mã. Tuy nhiên có một hạn chế là bạn không thể thêm dữ liệu vào hàng mới, cột mới. Bạn có thể mở rộng giới hạn thành 5 hàng và 2 cột bằng mã sau:
Mã excel VBA:
Bảng phụ riêng tư_Activate()
Với tôi.UsedRange
Me.ScrollArea = .Resize(.Rows.Count 5, .Columns.Count 2).Address
Kết thúc với
kết thúc phụ
Và nếu bạn muốn nhiều hơn, hãy nhập tự do hơn, sau đó sử dụng mã để đặt lại vùng cuộn với toàn bộ trang tính:
Mã excel VBA:
Đặt lại phụScrollArea( )
ActiveSheet.ScrollArea = “”
kết thúc phụ
Bạn có thể gán một phím tắt cho mã này bằng cách nhấn Alt F8, chọn macro ResetScrollArea, nhấn nút tùy chọn và gán một phím tắt ví dụ. Ctrl W.
Sau này mỗi lần muốn nhập số liệu nhấn Ctrl W trước khi nhập dữ liệu. Khi nhập dữ liệu xong, chỉ cần kích hoạt sheet khác và quay lại sheet này, vùng cuộn bị giới hạn bởi đoạn mã trên (Worksheet_Activate())