Tôi cần phải viết macro như vậy: Tôi điền vào A1 bằng màu đen. Sau đó, khi tôi chạy macro, A2 phải nhẹ hơn một chút, A3 thậm chí còn nhẹ hơn ... vv cho đến khi A20 có màu trắng. Giá trị ô "F5" phải kiểm soát mức độ số mũ gradient. Mã hiện tại thay đổi màu tương ứng. Khi tôi thay đổi giá trị trong "F5" (ví dụ: từ 1 đến 0,7), điều xảy ra là TẤT CẢ của 20 ô đó ("A1: A20") trở nên tối hơn EQUALLY. Và tế bào cuối cùng A20 không còn màu trắng nữa.Làm thế nào để buộc các tế bào excel thay đổi màu sắc EXPONENTIALLY?
Tuy nhiên, tôi cần ô nắm tay "A1" là màu đen và ô cuối cùng "A20" là màu trắng không có vấn đề gì ... Và phân phối màu cho các ô phải là EXPONENTIAL, tức là sự khác biệt giữa bóng tối A1 và A2 nên HAI lần (nếu "F5" == 2) lớn như sự khác biệt giữa bóng tối A3 và A2, vv ...
Sub Macro3()
Dim firstCell As Range 'the first cell, and the cell whose color will be used for all others.
Dim cellColor As Long 'the cell color that you will use, based on firstCell
Dim allCells As Range 'all cells in the column you want to color
Dim c As Long 'cell counter
Dim tintFactor As Double 'computed factor based on # of cells.
Dim contrast As Double 'double precision factor for changing the contrast 0= none higher is more
Set firstCell = Range("A1")
cellColor = firstCell.Interior.Color
contrast = Range("F5").Value
Set allCells = Range("A1:A20")
For c = allCells.Cells.Count To 1 Step -1
allCells(c).Interior.Color = cellColor
allCells(c).Interior.TintAndShade = _
contrast * (c - 1)/(allCells.Cells.Count -1)
Next
tôi không thể tìm ra, chức năng gì thế nào tôi nên thực hiện ở trên để các thay đổi màu sắc sẽ được theo cấp số nhân, như tôi thay đổi giá trị cho varialbe contrast
trong "F5"? // VÀ
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F5")) Is Nothing Then
Call Macro3
End If
End Sub
bạn có cần có giá trị chính xác trong cột B như được trình bày hoặc tương tự không? –
@KazJaw Tôi chỉ cần tương tự. Tôi chỉ cố gắng cho một ví dụ mô tả những gì tôi cần. – Buras