Cần giúp viết Code Chọn (bôi đen) từ ô C4 đến ô C19 mà không chọn các ô có màu ở giữa (2 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:
Chọn (Bôi đen) từ ô C4 đến ô C19, tôi dùng Code:
PHP:
[C4:C19].Select
=> Vấn đề được đặt ra ở đây là: Nếu có ngẫu nhiên các ô có màu khác nhau (Ô thì màu vàng, ô thì màu tím,...) trong khoảng t
ừ ô C4 đến ô C19 => Có Code nào Chọn (Bôi đen) các ô từ ô C4 đến ô C19 đó mà không chọn (Bỏ qua) các ô có màu không?
Ví dụ: Chọn (Bôi đen) từ ô C4 đến ô C19 mà không chọn các ô có màu như ô C8, C10, C12, C16 (Các Ô này đều có màu).
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

PHP:
Option Explicit
Sub SelectCellsNoColor()
 Dim NoColor As Range, Cls As Range
 
 For Each Cls In Range("C4:C20")
    If Cls.Interior.ColorIndex < 0 Then
        If NoColor Is Nothing Then
            Set NoColor = Cls
        Else
            Set NoColor = Union(NoColor, Cls)
        End If
    End If
 Next Cls
 If Not NoColor Is Nothing Then NoColor.Select
End Sub
 
Upvote 0
Viết vầy cho nhức đầu chút
PHP:
Sub Main()
Dim rng As Range, Data As Range
Set Data = Range("C4:C1000")
MySelect Data, rng
rng.Select
End Sub
Sub MySelect(Arr As Range, rng As Range)
Dim i As Long, n
For i = 1 To Arr.Count
   If Chk(Arr(i, 1)) Then
      n = n + 1
      If n = 1 Then Set rng = Range(Arr(i, 1).Address())
      If n > 1 Then Set rng = Union(rng, Range(Arr(i, 1).Address()))
   End If
Next
End Sub
Function Chk(cell As Range) As Boolean
Chk = cell.Interior.ColorIndex = xlNone
End Function
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom