Kiểm tra cell rổng trong 1 vùng.

  • Thread starter Thread starter tam8678
  • Ngày gửi Ngày gửi
Liên hệ QC

tam8678

Đời Xá Chi
Tham gia
30/4/09
Bài viết
417
Được thích
301
Nghề nghiệp
Kế toán
Giả sử tôi có 1 vùng từ A1:E10 không có cell rổng. Trong trường hợp muốn kiểm tra trong vùng có chứa 1 cell rổng bất kỳ nào hay không thì code viết như thế nào, nếu có thì
ra thông báo và chọn ngay cell rổng. Mong các anh em xem giúp.
 
Giả sử tôi có 1 vùng từ A1:E10 không có cell rổng. Trong trường hợp muốn kiểm tra trong vùng có chứa 1 cell rổng bất kỳ nào hay không thì code viết như thế nào, nếu có thì
ra thông báo và chọn ngay cell rổng. Mong các anh em xem giúp.
- Chọn vùng
- Bấm Ctrl + G\Special\Blanks
- Nếu không thấy hiện thông báo gì thì chứng tỏ cell rổng có tồn tại, ngược lại là không có cell rồng
--------------------------
Viết code cũng sẽ thực hiện y chang thao tác này (bằng cách record macro)
 
Upvote 0
- Chọn vùng
- Bấm Ctrl + G\Special\Blanks
- Nếu không thấy hiện thông báo gì thì chứng tỏ cell rổng có tồn tại, ngược lại là không có cell rồng
--------------------------
Viết code cũng sẽ thực hiện y chang thao tác này (bằng cách record macro)
---
Anh có record macro rồi, nhưng lúng túng không biết làm sao cho nó "hiểu"( record macro trong trường hợp không có cell rổng thì code không có gì). Chú xem giúp nhé.
 
Upvote 0
---
Anh có record macro rồi, nhưng lúng túng không biết làm sao cho nó "hiểu"( record macro trong trường hợp không có cell rổng thì code không có gì). Chú xem giúp nhé.
Thôi viết cho anh luôn đây
PHP:
Private Sub CheckBlankCells(SrcRng As Range)
  On Error GoTo ExitSub
  With SrcRng.SpecialCells(4)
    MsgBox "Các cell rong:" & vbLf & .Address
    Exit Sub
  End With
ExitSub:
  MsgBox "Khong co cell rong nao!"
End Sub
Giờ ví dụ anh muốn kiểm tra vùng [B5:I16] xem có cell rổng nào không thì anh viết thêm 1 code nữa:
PHP:
Sub Checker()
    CheckBlankCells [B5:I16]
End Sub
Chạy code Checker này sẽ thấy ngay kết quả
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Không hiểu sao tải tập tin thì ra thông báo như thế này chú ơi:
Địa chỉ Tập Tin Ðính Kèm không đúng. Nếu địa chỉ này là chính xác, vui lòng gửi thư cho administrator
* Anh tải được rồi. Nhờ BQT xóa giúp bài này. Cám ơn
 
Lần chỉnh sửa cuối:
Upvote 0
Không hiểu sao tải tập tin thì ra thông báo như thế này chú ơi:
Địa chỉ Tập Tin Ðính Kèm không đúng. Nếu địa chỉ này là chính xác, vui lòng gửi thư cho administrator
Hình như lổi này đã bị vài lần thì phải (mấy bạn khác cũng từng bị, không hiểu tại sao)
Em nén và up lên lại đây ---> File tại bài số #4 nha
 
Upvote 0
Bạn tham khảo dùng công thức xem có được không nhé! tuy nhiên tốc độ sử lý sẽ bị chậm
 

File đính kèm

Upvote 0
Bạn tham khảo dùng công thức xem có được không nhé! tuy nhiên tốc độ sử lý sẽ bị chậm
Hi... hi... Nếu muốn công thức thì tặng bạn món này! Tin chắc chẳng thể có công thức nào ngắn hơn
Ta làm như sau:
- Đặt 1 name tên BlankRng, có công thức tại Refers to:
PHP:
=IF(NOW(),REFTEXT(SELECTION(),TRUE))
- Gõ công thức =BlankRng vào 1 cell rổng
- Quét chọn dữ liêu, Ctrl + G\Special\Blanks rồi bấm OK
- Bấm F9 và xem kết quả của công thức
Về tốc độ thì... khỏi bàn
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
- Chọn vùng
- Bấm Ctrl + G\Special\Blanks
- Nếu không thấy hiện thông báo gì thì chứng tỏ cell rổng có tồn tại, ngược lại là không có cell rồng
--------------------------
Viết code cũng sẽ thực hiện y chang thao tác này (bằng cách record macro)

Thôi viết cho anh luôn đây
PHP:
Private  Sub CheckBlankCells(SrcRng As Range)
  On Error GoTo ExitSub
   With SrcRng.SpecialCells(4)
    MsgBox "Các cell rong:" & vbLf  & .Address
    Exit Sub
  End With
ExitSub:
  MsgBox  "Khong co cell rong nao!"
End Sub
Giờ ví dụ anh muốn kiểm tra vùng [B5:I16] xem có cell rổng nào không thì anh viết thêm 1 code nữa:
PHP:
Sub  Checker()
    CheckBlankCells [B5:I16]
End Sub
Chạy code Checker này sẽ thấy ngay kết quả
Bạn hướng dẫn người ta Recode Macro sẽ được code mà tôi thấy code của bạn đâu phải có được do Recode Macro đâu (Recode Macro không bao giờ có được các dòng bẫy lỗi và các cấu trúc If... Then, For... Next, Do... Loop,...)

Nếu vùng muốn kiểm tra chỉ có 1 cell thì code của bạn đâu có đúng???
 
Upvote 0
Bạn hướng dẫn người ta Recode Macro sẽ được code mà tôi thấy code của bạn đâu phải có được do Recode Macro đâu (Recode Macro không bao giờ có được các dòng bẫy lỗi và các cấu trúc If... Then, For... Next, Do... Loop,...)

Nếu vùng muốn kiểm tra chỉ có 1 cell thì code của bạn đâu có đúng???
Ở bài số #4 NDU nói là "Viết luôn" mà đâu có phải Record đâu, tuy nhiên code đó chính xác là nó thao tác giống như thao tác Ctrl+G trên Worksheet. Không cứ gì chọn 1 cell đâu mà cứ chọn 1 vùng trắng tinh cả, hoặc 1 vùng mà có vùng cuối cùng bên phải và bên dưới là trắng thì nó đều không cho ra kết quả đúng, thực hiện bằng Ctrl+G trên Sheet cũng vậy, nên nếu để cho ra kết quả chính xác hơn thì không dùng code đó được.
 
Upvote 0
Ở bài số #4 NDU nói là "Viết luôn" mà đâu có phải Record đâu, tuy nhiên code đó chính xác là nó thao tác giống như thao tác Ctrl+G trên Worksheet. Không cứ gì chọn 1 cell đâu mà cứ chọn 1 vùng trắng tinh cả, hoặc 1 vùng mà có vùng cuối cùng bên phải và bên dưới là trắng thì nó đều không cho ra kết quả đúng, thực hiện bằng Ctrl+G trên Sheet cũng vậy, nên nếu để cho ra kết quả chính xác hơn thì không dùng code đó được.
Thì tôi nói code đó không thể Recode Macro mà có được mà lúc đầu lại hướng dẫn người ta Recode Macro.

Đoạn tôi bôi đậm cần xem lại nhé.

Bạn làm ví dụ như thế này sẽ thấy:

Tạo một sheet mới
- Nhập vào cell N100 vài ký tự
- Nhập vào cell A1 vài ký tự
1. Quét chọn A1:D10 | Ctrl + G | Special... | Blanks

2. Quét chọn A10:D20 | Ctrl + G | Special... | Blanks

Cả hai trường hợp Excel đều tìm đúng những cell rỗng.

Go to Specialcell chỉ thực hiện trong vùng đã sử dụng (UsedRange), ngoài vùng UsedRange thì Excel cho là không có cái gì để tìm cả vì nó chưa được dùng tới. Trường hợp bạn nói là do bạn tìm ngoài vùng UsedRange.
 
Upvote 0
Bạn hướng dẫn người ta Recode Macro sẽ được code mà tôi thấy code của bạn đâu phải có được do Recode Macro đâu (Recode Macro không bao giờ có được các dòng bẫy lỗi và các cấu trúc If... Then, For... Next, Do... Loop,...)

Nếu vùng muốn kiểm tra chỉ có 1 cell thì code của bạn đâu có đúng???
Trời... bạn lý luận cái gì mà kỳ cục thế ---> Chẳng lẻ bê nguyên con record macro vào xài hay sao? Mấu chốt ở đây là xem Special\Blank code viết thế nào!
Nếu sau khi bấm OK mà tìm không thấy thì Excel sẽ xuất hiện câu thông báo lỗi ---> Thế thì khi viết code ta thêm dòng bẩy lỗi này vào, có khó khăn gì đâu
Giống như tôi nói 1 bài toán nào đó dùng AutoFilter, đương nhiên là ta dùng record macro với mục đích xem "cú pháp" của code, sau đó phải chỉnh sửa lại chứ
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom