Xin phép được hỏi về code VBA xóa tự động ô theo mong muốn.

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

beetune1991

Thành viên hoạt động
Tham gia
28/3/19
Bài viết
170
Được thích
5
Xin chào các anh các chị,

Cách anh chị cho em hỏi e viết code tự động xoác các dòng chỉ định như dưới đây tuy nhiên bị lỗi xóa cả hàng ngang, và xóa cả nhưng cột em không chỉ định.
Các anh chị cho em biết code em bị sai chỗ nào được không ạ.
chỗ em ký hiệu đỏ là chỗ cần xóa. nhưng mấy chỗ em bôi xám là đều bị xóa hết cả dòng ạ

1698288876541.png

Code em đây ạ:

Set Rng = Union(.Range("J44"), .Range("C39:C42"), .Range("D26:AT35"), .Range("D18:AZ23"), .Range("D13:AR15"), .Range("AK10"), .Range("K10"), .Range("AZ9"), .Range("AX10"), .Range("AZ8"), .Range("K9"), .Range("AG8"), .Range("AS7"), .Range("K8"), .Range("K7"), .Range("K4"), .Range("AG9"), .Range("K5"), .Range("AM4"), .Range("AM5"), .Range("AG6"), .Range("AS5"), .Range("AG7"), .Range("AE6"))
Rng.Select
Selection.ClearContents

Em xin cảm ơn.
 
Các anh chị cho em biết code em bị sai chỗ nào được không ạ.
Có thể sửa như thế này là được này:
Mã:
Range("J44,C39:C42,D26:AT35,D18:AZ23,D13:AR15,AK10,K10,AZ9,AX10,AZ8,K9,AG8,AS7,K8,K7,K4,AG9,K5,AM4,AM5,AG6,AS5,AG7,AE6").ClearContents
 
Upvote 0
Có thể sửa như thế này là được này:
Mã:
Range("J44,C39:C42,D26:AT35,D18:AZ23,D13:AR15,AK10,K10,AZ9,AX10,AZ8,K9,AG8,AS7,K8,K7,K4,AG9,K5,AM4,AM5,AG6,AS5,AG7,AE6").ClearContents
nó báo de book a ạ
Có thể sửa như thế này là được này:
Mã:
Range("J44,C39:C42,D26:AT35,D18:AZ23,D13:AR15,AK10,K10,AZ9,AX10,AZ8,K9,AG8,AS7,K8,K7,K4,AG9,K5,AM4,AM5,AG6,AS5,AG7,AE6").ClearContents
1698291115274.png

Bị debug anh ơi.
 
Upvote 0
Xin chào các anh các chị,

Cách anh chị cho em hỏi e viết code tự động xoác các dòng chỉ định như dưới đây tuy nhiên bị lỗi xóa cả hàng ngang, và xóa cả nhưng cột em không chỉ định.
Các anh chị cho em biết code em bị sai chỗ nào được không ạ.
chỗ em ký hiệu đỏ là chỗ cần xóa. nhưng mấy chỗ em bôi xám là đều bị xóa hết cả dòng ạ

View attachment 296074

Code em đây ạ:

Set Rng = Union(.Range("J44"), .Range("C39:C42"), .Range("D26:AT35"), .Range("D18:AZ23"), .Range("D13:AR15"), .Range("AK10"), .Range("K10"), .Range("AZ9"), .Range("AX10"), .Range("AZ8"), .Range("K9"), .Range("AG8"), .Range("AS7"), .Range("K8"), .Range("K7"), .Range("K4"), .Range("AG9"), .Range("K5"), .Range("AM4"), .Range("AM5"), .Range("AG6"), .Range("AS5"), .Range("AG7"), .Range("AE6"))
Rng.Select
Selection.ClearContents

Em xin cảm ơn.
Không có file đoán mò - thử kiểu nay xem
Sheets ("Tên của Sheets").Select Range("J44,C39:C42,D26:AT35,D18:AZ23,D13:AR15,AK10,K10,AZ9,AX10,AZ8,K9,AG8,AS7,K8,K7,K4,AG9,K5,AM4,AM5,AG6,AS5,AG7,AE6").Select
Selection.ClearContents
 
Upvote 0
@beetune1991
Bạn nhập vùng cần xóa bị lấn sang các ô khác.
Các ô đã gộp thì cần nhập chính xác ô, không thể nhập cả một vùng để xóa.

Bạn giữ ctrl chọn các ô cần xóa, mở cửa sổ Immediate (Ctrl+G) gõ ?Selection.address(0,0) và nhấn Enter

Các ô đã gộp chỉ cần nhập địa chỉ ô duy nhất. Ví dụ gộp A1:B5 thì nhập A1 là được.
 
Upvote 0
Code mà xài trên bảng merged cells tùm lum thì khó debug lắm.
Và nó đôi khi sai chỗ nào cũng khó nhận ra.
Đã muốn merged cells thì tránh "tự động"
 
Upvote 0
Thay vì vị trí chỉ định rất dài dòng ta dùng ký tự đặc biệt cho biết những ô nào cần xóa thì vba excel thực hiện tế là xong
 
Upvote 0
Xin chào các anh các chị,

Cách anh chị cho em hỏi e viết code tự động xoác các dòng chỉ định như dưới đây tuy nhiên bị lỗi xóa cả hàng ngang, và xóa cả nhưng cột em không chỉ định.
Các anh chị cho em biết code em bị sai chỗ nào được không ạ.
chỗ em ký hiệu đỏ là chỗ cần xóa. nhưng mấy chỗ em bôi xám là đều bị xóa hết cả dòng ạ

View attachment 296074

Code em đây ạ:

Set Rng = Union(.Range("J44"), .Range("C39:C42"), .Range("D26:AT35"), .Range("D18:AZ23"), .Range("D13:AR15"), .Range("AK10"), .Range("K10"), .Range("AZ9"), .Range("AX10"), .Range("AZ8"), .Range("K9"), .Range("AG8"), .Range("AS7"), .Range("K8"), .Range("K7"), .Range("K4"), .Range("AG9"), .Range("K5"), .Range("AM4"), .Range("AM5"), .Range("AG6"), .Range("AS5"), .Range("AG7"), .Range("AE6"))
Rng.Select
Selection.ClearContents

Em xin cảm ơn.
Mới biết viết code thì bạn nên tập tính cẩn thận. Union các ô, vùng mà không theo 1 trật tự nào cả thì khi cần dò lại để chỉnh sửa nghe mệt luôn.
 
Upvote 0
Không có file đoán mò - thử kiểu nay xem
Sheets ("Tên của Sheets").Select Range("J44,C39:C42,D26:AT35,D18:AZ23,D13:AR15,AK10,K10,AZ9,AX10,AZ8,K9,AG8,AS7,K8,K7,K4,AG9,K5,AM4,AM5,AG6,AS5,AG7,AE6").Select
Selection.ClearContents
ôi cái này chuẩn rồi anh ơi.
em thiếu cái sheet name ạ và bỏ set rng đi là được rồi ạ.
cám ơn anh.
 
Upvote 0
tôi làm như thế này không biết có đúng ý chủ thớt không tôi định dạng những ô màu vàng thì xóa nó đi còn lại thì không?
bạn xem file đính kèm
 

File đính kèm

  • Xoa du lieu theo mau.xlsm
    23.7 KB · Đọc: 6
Upvote 0
. . . .Cho em hỏi e viết code tự động xoá các dòng chỉ định như dưới đây tuy nhiên bị lỗi xóa cả hàng ngang, và xóa cả nhưng cột em không chỉ định.
(1) Các anh chị cho em biết code em bị sai chỗ nào được không ạ.
(2) Chỗ em ký hiệu đỏ là chỗ cần xóa. nhưng mấy chỗ em bôi xám là đều bị xóa hết cả dòng ạ

View attachment 296074
(1) Theo mình thì bạn lạm dụng quá sớm phương thức Union() nên gây sai sót;
(2) 1 khi đã có những ô cần xóa trên (sơ đồ phân biệt bằng màu sắc) trên trang tính
Ta bắt đầu viết xóa từng ô theo dòng, từ trên xuống;
Ví dụ dòng lệnh đầu tiên bạn chỉ nên gõ
PHP:
Union([K4],[AM4]).Value ="" 'Xóa cho các ô dòng 4  '
Tiếp đến là dòng lệnh:
Mã:
Union([K5],[AM5], [AS5]).Value ="" 'Xóa cho các ô dòng 5  '
. . . . . . 'Viết như vậy cho đến cuối;
Sau khi vận hành đã đúng, ta tiến hành gộp lần lượt từng 2 hay 3 dòng lệnh lại
Ví dụ:
PHP:
Union([K4:K5],[AM4:AM5], [AS5]).Value ="" 'Xóa cho các ô dòng 4 & 5  '
. . . .
Nếu bạn là người đã rành rẽ viết Code thì coi như mình chưa nói gì với bạn, nha chủ bài đăng!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom