Tạo "vùng cấm địa" trong bảng tính (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,469
Nghề nghiệp
Công chức
Nếu bạn muốn bảo vệ một vùng nào đó trong bảng tính (chỉ được xem - không được nhập, sửa ...) thì ngoài các phương pháp Protect, Validation... bạn có thể tạo "vùng cấm địa" trong bảng tính bằng VBA theo cách sau:
Ví dụ: bạn muốn vùng C5:H20 của Sheet1 là bất khả xâm phạm thì bạn Pate Code sau vào Module của Sheet1 (bạn sửa lại vùng [c5:h20] hoặc chọn nhiều vùng theo theo ý của bạn).
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [c5:h20]) Is Nothing Then [a1].Select
End Sub
Xin nói thêm: Giải pháp nào cũng có 2 mặt, do đó đây cũng chỉ là thêm một cách cho sự lựa chọn của bạn.
 

File đính kèm

Việc gì phải bấm nhanh vào đâu . Bạn cứ chọn A3 hoặc D3 hoặc L3 là dán vô tư . Có điều Bạn Thấy cần Mấy dòng trên để trình bày nội dung, mà chỉ tránh vô tình làm sai lệch dữ liệu thôi . Nếu muốn không cho dán dữ liệu copy thì chọn cả cột : Range("A:A,D:D,L:L").Nói chung chỉ "dọa" người không biết thôi . À mà đây là ý tưởng của thày Trung chính và Thày NDU, mình chỉ phát triển tí tẹo râu ria mà thôi .
Bạn thêm sub này vào nữa, mình test vài lần chưa thấy lỗi gì
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
With Application
.EnableEvents = False
If Not Intersect(Target, Range("d4:d6000,l4:l6000,a4:a5999")) Is Nothing Then .Undo
.EnableEvents = True
End With
 
Upvote 0
Bạn copy cả cột C chứa dữ liệu, bấm nhanh vài lần vào chữ D trên đỉnh cột D. Sau vài lần nhảy sang cột E, excel sẽ cho ta chọn cột D, bấm Ctrl-V để paste vào cột D.
Cách 2 "chơi đúng luật" hơn bạn muốn nhập 1 vào A4, chỉ cần nhập vào ô ở trên rồi fill xuống.

Bạn đọc bài 11, 12 thì thấy ý người hỏi, tức bạn Thay, là không cấm dán vào vùng cấm vì người dùng sẽ không cố dán gì vào đó. Người hỏi chỉ muốn không cho "chọn" ô trong vùng cấm thôi, vì đôi khi click nhầm vào đấy
Tóm lại là hỗ trợ người lành tránh nhầm lẫn, đãng trí chứ không cấm kẻ xấu cố tình phá hoại.
 
Upvote 0
Nhờ thầy chỉnh giúp công thức để khi nhấp chuột vào ô nào của cột A thì chuột nhảy sang bên cạnh ví dụ bấm vào A4 thì chuột nhảy sang B4, nhấp vào A10 thì chuột nhảy sang B10

Bác thử code này. Ví dụ khi chọn vào các cột A, C, E thì nó nhẩy sang cột bên cạnh. Bác thích cột nào thì sửa lại.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Union([a:a], [c:c], [e:e])) Is Nothing Then Target(1, 2).Select
End Sub
 
Upvote 0
Xin chào các bạn,
Mình có 1 vùng, chỉ cho nhập dữ liệu 1 lần đầu, sau đó không cho chỉnh sửa gì thêm. Và vùng đó chỉ được thêm dòng/cột, nhưng không cho xoá dòng/cột.
Mọi người xin giúp giùm mình nhé!!!!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom