Tự động điền màu theo các giá trị trong ô trong bảng tính


4

Câu hỏi: Có thể điền vào mỗi ô trong bảng tính bằng màu có giá trị thang độ xám giống với giá trị ô không?

Giải trình :

Hãy xem xét tôi có một bảng tính như sau:

enter image description here

Tất cả các giá trị nằm trong khoảng 0-255 (tương ứng với 256 màu thang độ xám). Bây giờ tôi muốn điền vào mỗi ô với màu có giá trị là giá trị trong ô. Vì vậy, sản lượng dự kiến ​​là như sau:

enter image description here

Ngoài ra, hãy xem màu phông chữ trong mỗi ô là đen hoặc trắng tương ứng với màu nền.

Có phương pháp đơn giản nào trong Excel để thực hiện việc này trong một vài bước hoặc tất cả cùng một lúc không?


ok, có thể làm điều này với các định dạng có điều kiện, nhưng nếu có khả năng, bạn nên sử dụng một macro cho nó.
Jook

Câu trả lời:


5

Tạo một Macro lặp qua các ô của bạn, đọc giá trị trong ô và gán nó cho màu như thế này:

Range("A1:A6").Interior.Color = RGB(200,160,35)

3

TheUser1024 là đúng, và có phiếu bầu của tôi.

Đây là một giải pháp sẵn sàng để sử dụng:

Public Sub Demo()
  Dim cel As Range
  Dim myRange As Range

  Set myRange = Range("A1:E10")

  For Each cel In myRange
    cel.Interior.Color = RGB(cel.Value, cel.Value, cel.Value)
    If cel.Value > 127 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next cel
End Sub

Chỉnh sửa:

Mã này sẽ không bị hỏng trong trường hợp chuỗi hoặc giá trị âm ...

Public Sub Demo()
  Dim cel As Range
  Dim greytone As Long
  Dim myRange As Range

  Set myRange = Range("A1:E10")

  For Each cel In myRange
    greytone = CLng(Abs(Val(cel.Value)))
    cel.Interior.Color = RGB(greytone, greytone, greytone)
    If greytone > 127 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next cel
End Sub

Điều này hoạt động nếu tất cả các ô chứa số nguyên từ 1 đến 256, nhưng nó sẽ gây ra lỗi cho bất cứ điều gì khác. Bạn có thể thêm một điều kiện trong vòng lặp for để kiểm tra điều này và điều đó sẽ loại bỏ bất kỳ vấn đề lỗi nào.
Excellll

@Excellll vâng, bạn đúng - nhưng nó hoạt động cho các ô trống và tất cả các giá trị kép dương. Tuy nhiên, tôi đã chỉnh sửa nó thành phiên bản mạnh mẽ hơn, cảm ơn vì gợi ý!
Jook

Tôi tin rằng điều này xứng đáng được nâng cao hơn câu trả lời của tôi, vì nó làm tất cả các chi tiết tốt. Của tôi chỉ nêu nguyên tắc cơ bản và tôi thậm chí không nghĩ về khía cạnh font.color đó.
TheUser1024
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.