Cần giúp tìm quy luật để viết Code tìm ô rỗng có màu như kiểu màu vàng là màu số 6. (1 người xem)

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
- Tìm ô rỗng có màu vàng (Màu 6), tôi xài Code:
[GPECODE1=vb]Public Sub Tim_o_co_mau()
Application.FindFormat.Interior.Color = 65535
Cells.Find(What:="", SearchFormat:=True).Activate
End Sub[/GPECODE1]
- Tìm ô rỗng có màu đỏ (Màu 3), tôi xài Code:
[GPECODE1=vb]Public Sub Tim_o_co_mau()
Application.FindFormat.Interior.Color = 205535
Cells.Find(What:="", SearchFormat:=True).Activate
End Sub[/GPECODE1]
=> Vấn đề được đặt ra ở đây là: Có quy luật nào để viết Code tìm ô rỗng có màu như kiểu màu vàng là màu số 6, màu đỏ là màu số 3,... không?

Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

Mình cũng chỉ xài E2003, nên cho rằng cách này là duy nhất:

Trước khi ghi macro, ta thao tác nhuần nhuyễn các công đoạn sau:

Chọn toàn bộ cột [A:A] của trang tính, nơi ta đang cần tìm những ô rỗng có màu nền
Vô menu Edit & thực hiện lệnh Goto đến những ô rỗng

Khi đã nhuyễn, ta ghi macro 2 công đoạn đơn giản này; Chỉnh sửa nếu cần.
Ta sẽ có macro có dáng như sau:
PHP:
Option Explicit
Sub Macro1()
    Columns("A:A").Select
    Range("A2").Activate
    Selection.SpecialCells(xlCellTypeBlanks).Select
End Sub

Sau đó ta khai thêm hai biến kiểu Range, như Rng & Cls
Tiếp, ta chỉnh macro đó lại như sau:

Mã:
Option Explicit
[B]Sub Macro1()
[/B] Dim Rng As Range, Cls As Range
 
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeBlanks)
 For Each Cls In Rng
    If Cls.Interior.ColorIndex = 6 Then
        MsgBox "Nó Day Ròi!"
    End If
 Next Cls
End Sub
 
Upvote 0
Mình cũng chỉ xài E2003, nên cho rằng cách này là duy nhất:

Trước khi ghi macro, ta thao tác nhuần nhuyễn các công đoạn sau:

Chọn toàn bộ cột [A:A] của trang tính, nơi ta đang cần tìm những ô rỗng có màu nền
Vô menu Edit & thực hiện lệnh Goto đến những ô rỗng

Khi đã nhuyễn, ta ghi macro 2 công đoạn đơn giản này; Chỉnh sửa nếu cần.
Ta sẽ có macro có dáng như sau:
PHP:
Option Explicit
Sub Macro1()
    Columns("A:A").Select
    Range("A2").Activate
    Selection.SpecialCells(xlCellTypeBlanks).Select
End Sub

Sau đó ta khai thêm hai biến kiểu Range, như Rng & Cls
Tiếp, ta chỉnh macro đó lại như sau:

Mã:
Option Explicit
[B]Sub Macro1()
[/B] Dim Rng As Range, Cls As Range
 
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeBlanks)
 For Each Cls In Rng
    If Cls.Interior.ColorIndex = 6 Then
        MsgBox "Nó Day Ròi!"
    End If
 Next Cls
End Sub
Cảm ơn bạn, như bạn nói thì chắc chẳng có quy luật nào nhỉ? 2 Code ở #1 là do tôi vừa hỏi vừa mò mà có được.
 
Upvote 0
Upvote 0
cais gì cũng vậy, nếu muốn có quy luật thì yêu cầu phải rõ rệt.
Nếu yêu cầu đúng như thế (chỉ tìm 1 ô) thì có quy luật:

1. Dùng function thay vì sub
2. Đưa trị màu vào tham số

function TimOCoMau(byval mau as interger) as range
...
....Color = mau
...
set TimOCoMau = ...
end function

Nhưng nếu yêu cầu không được rõ rệt như thế thì bố ai biết quy luật ra sao.
 
Upvote 0
cais gì cũng vậy, nếu muốn có quy luật thì yêu cầu phải rõ rệt.
Nếu yêu cầu đúng như thế (chỉ tìm 1 ô) thì có quy luật:

1. Dùng function thay vì sub
2. Đưa trị màu vào tham số

function TimOCoMau(byval mau as interger) as range
...
....Color = mau
...
set TimOCoMau = ...
end function

Nhưng nếu yêu cầu không được rõ rệt như thế thì bố ai biết quy luật ra sao.
Ah, ý tôi là như Code ở #1 thì
PHP:
Application.FindFormat.Interior.Color = 65535 '(Số 65535 này là màu vàng (màu 6) => Vậy màu khác thì là số nào? Có quy luật gì không?
 
Upvote 0
Ah, ý tôi là như Code ở #1 thì
PHP:
Application.FindFormat.Interior.Color = 65535 '(Số 65535 này là màu vàng (màu 6) => Vậy màu khác thì là số nào? Có quy luật gì không?
Bạn đang làm phức tạp hóa vấn đề.
Bài #4 bác Sa đã chỉ cho bạn các phương thức để tìm màu tương ứng Code nào, hàm tự tạo cũng có và cách để bạn thử nghiệm 65536 số tương ứng với màu nào cũng có.

Quy luật màu thì chắc rất khó bới chính bản thân chúng ta cũng có biết có bao nhiêu màu đâu, mà bạn cần quy luật để ứng dụng việc gì?

Tôi nghĩ hãy cứ đơn giản một chút sẽ có nhiều thứ hay ^^.
 
Upvote 0
Đúng là tự làm phức tạp vấn đề. Nếu chỉ muốn trộn màu thì nói thẳng muốn trộn màu có khoẻ thân không?

Trong VBA, có hàm RGB để trộn màu. Màu vàng là RGB(255,255,0)

Link ở bài #4 có nói rõ. Tại bạn lười đọc.
 
Upvote 0

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

Back
Top Bottom