Note: The other languages of the website are Google-translated. Back to English

Làm thế nào để thay đổi màu hình dạng dựa trên giá trị ô trong Excel?

Thay đổi màu hình dạng dựa trên một giá trị ô cụ thể có thể là một nhiệm vụ thú vị trong Excel, ví dụ: nếu giá trị ô trong A1 nhỏ hơn 100, màu hình dạng là màu đỏ, nếu A1 lớn hơn 100 và nhỏ hơn 200, màu hình dạng là màu vàng và khi A1 lớn hơn 200, màu hình dạng là màu xanh lục như hình minh họa sau. Để thay đổi màu sắc của hình dạng dựa trên giá trị ô, bài viết này sẽ giới thiệu phương pháp cho bạn.

doc thay đổi màu hình dạng 1

Thay đổi màu hình dạng dựa trên giá trị ô với mã VBA


mũi tên màu xanh bong bóng bên phải Thay đổi màu hình dạng dựa trên giá trị ô với mã VBA

Mã VBA dưới đây có thể giúp bạn thay đổi màu hình dạng dựa trên giá trị ô, vui lòng thực hiện như sau:

1. Bấm chuột phải vào tab trang tính mà bạn muốn thay đổi màu hình dạng, sau đó chọn Mã Chế độ xem từ menu ngữ cảnh, trong cửa sổ bật ra Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng sao chép và dán đoạn mã sau vào chỗ trống Mô-đun cửa sổ.

Mã VBA: Thay đổi màu hình dạng dựa trên giá trị ô:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160704
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) Then
        If Target.Value < 100 Then
            ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbRed
        ElseIf Target.Value >= 100 And Target.Value < 200 Then
            ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbYellow
        Else
            ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbGreen
        End If
    End If
End Sub

doc thay đổi màu hình dạng 2

2. Và sau đó khi bạn nhập giá trị vào ô A1, màu hình dạng sẽ được thay đổi với giá trị ô như bạn đã xác định.

Chú thích: Trong đoạn mã trên, A1 là giá trị ô mà màu hình dạng của bạn sẽ được thay đổi dựa trên, và Hình bầu dục 1 là tên hình dạng của hình dạng đã chèn của bạn, bạn có thể thay đổi chúng theo nhu cầu của mình.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (21)
Xếp hạng 4 trong 5 · xếp hạng 1
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Còn nếu chúng ta có nhiều hơn 1 đối tượng trong trang tính mà màu sắc thay đổi theo giá trị đầu vào trong A1, B1, C1 ... thì sao.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Edward,
Rất vui được giúp đỡ. Vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun trống.

Sub TestMacro2 ()
Dim dblHt As Double
Dim rngC As Range
Dim lngr As Long
Dim dblMargin As Double
Dim lngSR As Long

lngSR = 2 'Hàng nơi dữ liệu bắt đầu

dblMargin = 6 'Khoảng cách giữa các hình dạng

'On Error Tiếp tục Tiếp theo
ActiveSheet.Shapes.SelectAll
Lựa chọn. Xóa
Về lỗi GoTo 0


dblHt = Hàng (lngSR) .Height * 4

Đối với lngr = lngSR Tới Ô (lngSR, "A"). End (xlDown) .Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
Ô (lngSR, "D"). Left + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
Ô (lngSR, "D"). Top + Int ((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) .Select
Selection.Name = "Round" & Cells (lngr, "A"). Địa chỉ
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange (1) .TextFrame2.TextRange.Characters.Text = Ô (lngr, "A"). Giá trị
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
Kết thúc với
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .Font
.Bold = msoTrue
.Fill.Vosystem = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 12
Kết thúc với
Với Selection.ShapeRange.Fill
.Vible = msoTrue
Nếu Ô (lngr, "A"). Giá trị> 70 Thì
.ForeColor.RGB = RGB (0, 176, 80)
ElseIf Cells (lngr, "A"). Giá trị> = 40 Thì
.ForeColor.RGB = RGB (255, 255, 70)
Khác
.ForeColor.RGB = RGB (255, 0, 0)
Cuối Nếu
.Độ trong suốt = 0
.Chất rắn
Kết thúc với
Lngr tiếp theo
Phạm vi ("A1"). Chọn
End Sub

Sau khi bạn chạy mã VBA ở trên, bạn sẽ thấy nhiều hình dạng được tạo và màu sắc của những hình dạng này được thay đổi theo VBA.
Vui lòng xem ảnh chụp màn hình của tôi. Hy vọng nó có thể giúp ích. Chúc một ngày tốt lành.
Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có 300 hình dạng trong một trang tính. Có thể kiểm tra giá trị của ô liền kề hoặc ô được liên kết (trống hoặc không trống) trong trang tính và tô màu các hình được liên kết thông qua mã VBA không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Giải pháp vba tuyệt vời.

Cũng có thể sử dụng định dạng có điều kiện để tô màu các hình dạng.

Đặt tên của mỗi hình dạng làm giá trị ô. Sử dụng Với Mỗi hình dạng, sau đó đặt màu hình dạng làm màu ô cho tất cả các hình dạng được đặt tên.

Màu ô có thể được thay đổi bằng cách sử dụng định dạng có điều kiện dựa trên các giá trị số.

Ví dụ: màu của chồng chéo nửa trong suốt trên bản đồ thành phố có thể được sử dụng để biểu thị bằng đồ thị mật độ dân số trên mỗi khối với bảng màu chia độ.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có thể chia sẻ một ví dụ về mã?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào điều này có thể được áp dụng nếu bạn có nhiều hình dạng trong cùng một trang tính?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Yasir,
Rất vui được giúp đỡ. Vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun trống.

Sub TestMacro2 ()
Dim dblHt As Double
Dim rngC As Range
Dim lngr As Long
Dim dblMargin As Double
Dim lngSR As Long

lngSR = 2 'Hàng nơi dữ liệu bắt đầu

dblMargin = 6 'Khoảng cách giữa các hình dạng

'On Error Tiếp tục Tiếp theo
ActiveSheet.Shapes.SelectAll
Lựa chọn. Xóa
Về lỗi GoTo 0


dblHt = Hàng (lngSR) .Height * 4

Đối với lngr = lngSR Tới Ô (lngSR, "A"). End (xlDown) .Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
Ô (lngSR, "D"). Left + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
Ô (lngSR, "D"). Top + Int ((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) .Select
Selection.Name = "Round" & Cells (lngr, "A"). Địa chỉ
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange (1) .TextFrame2.TextRange.Characters.Text = Ô (lngr, "A"). Giá trị
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
Kết thúc với
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .Font
.Bold = msoTrue
.Fill.Vosystem = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 12
Kết thúc với
Với Selection.ShapeRange.Fill
.Vible = msoTrue
Nếu Ô (lngr, "A"). Giá trị> 70 Thì
.ForeColor.RGB = RGB (0, 176, 80)
ElseIf Cells (lngr, "A"). Giá trị> = 40 Thì
.ForeColor.RGB = RGB (255, 255, 70)
Khác
.ForeColor.RGB = RGB (255, 0, 0)
Cuối Nếu
.Độ trong suốt = 0
.Chất rắn
Kết thúc với
Lngr tiếp theo
Phạm vi ("A1"). Chọn
End Sub

Sau khi bạn chạy mã VBA ở trên, bạn sẽ thấy nhiều hình dạng được tạo và màu sắc của những hình dạng này được thay đổi theo VBA.
Vui lòng xem ảnh chụp màn hình của tôi. Hy vọng nó có thể giúp ích. Chúc một ngày tốt lành.
Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn vì điều này thực sự hữu ích.

Bây giờ tôi muốn sử dụng nó với một bảng tổng hợp trên một trang tính khác điều khiển dữ liệu trên trang tính với các hình dạng mà tôi muốn thay đổi màu sắc. Tuy nhiên, khi tôi thay đổi lựa chọn trên bảng tổng hợp, dữ liệu trên trang tính có các hình dạng được cập nhật nhưng mã không chạy nên các hình dạng không thay đổi màu

Nếu tôi thay đổi thủ công các giá trị, mã sẽ chạy và màu của các hình dạng được cập nhật.

Câu hỏi: Tôi cần thêm những gì vào đoạn mã trên để cho phép nó chạy tự động?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm cách nào để đặt sub riêng để đọc kết quả từ phép tính AVERAGE (C1, C5, C9)?

Sub chỉ hoạt động với các giá trị số; bất kỳ suy nghĩ và đề xuất được đánh giá rất cao.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Cesare, Bạn có khỏe không? Tôi nhận thấy rằng mã VBA có thể hoạt động với phép tính AVERAGE (số, số ...). Nhưng mẹo ở đây là mỗi khi bạn thay đổi các giá trị trong phép tính, bạn cần phải bấm đúp vào công thức trong ô để VBA hoạt động trở lại. 
Ví dụ: Trong ô A1, sau khi chúng tôi nhập công thức là = AVERAGE (C2: D3), VBA sẽ hoạt động và thay đổi màu sắc của hình dạng cho phù hợp. Vui lòng xem ảnh chụp màn hình 1. C0.2: D2, kết quả trả về trong ô A3 thay đổi, nhưng màu hình dạng vẫn chưa được thay đổi. Trong trường hợp này, chúng ta cần bấm đúp vào công thức trong ô A1 để VBA hoạt động. Sau đó, màu sắc hình dạng sẽ được thay đổi tương ứng. Vui lòng xem ảnh chụp màn hình 1 và 2.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào ... giải pháp tuyệt vời ... nhưng làm cách nào để áp dụng nó cho nhiều hình dạng dựa trên các giá trị tương ứng của một dải ô. Rất cám ơn trước sự giúp đỡ của bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào ryan,
Rất vui được giúp đỡ. Vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun trống.

Sub TestMacro2 ()
Dim dblHt As Double
Dim rngC As Range
Dim lngr As Long
Dim dblMargin As Double
Dim lngSR As Long

lngSR = 2 'Hàng nơi dữ liệu bắt đầu

dblMargin = 6 'Khoảng cách giữa các hình dạng

'On Error Tiếp tục Tiếp theo
ActiveSheet.Shapes.SelectAll
Lựa chọn. Xóa
Về lỗi GoTo 0


dblHt = Hàng (lngSR) .Height * 4

Đối với lngr = lngSR Tới Ô (lngSR, "A"). End (xlDown) .Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
Ô (lngSR, "D"). Left + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
Ô (lngSR, "D"). Top + Int ((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) .Select
Selection.Name = "Round" & Cells (lngr, "A"). Địa chỉ
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange (1) .TextFrame2.TextRange.Characters.Text = Ô (lngr, "A"). Giá trị
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
Kết thúc với
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .Font
.Bold = msoTrue
.Fill.Vosystem = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 12
Kết thúc với
Với Selection.ShapeRange.Fill
.Vible = msoTrue
Nếu Ô (lngr, "A"). Giá trị> 70 Thì
.ForeColor.RGB = RGB (0, 176, 80)
ElseIf Cells (lngr, "A"). Giá trị> = 40 Thì
.ForeColor.RGB = RGB (255, 255, 70)
Khác
.ForeColor.RGB = RGB (255, 0, 0)
Cuối Nếu
.Độ trong suốt = 0
.Chất rắn
Kết thúc với
Lngr tiếp theo
Phạm vi ("A1"). Chọn
End Sub

Sau khi bạn chạy mã VBA ở trên, bạn sẽ thấy nhiều hình dạng được tạo và màu sắc của những hình dạng này được thay đổi theo VBA.
Vui lòng xem ảnh chụp màn hình của tôi. Hy vọng nó có thể giúp ích. Chúc một ngày tốt lành.
Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
¿Cómo hacemos si tenemos más de 1 Oval en la hoja de trabajo cuyos colres cambian de acuerdo con el valor ingresado, por ejemplo, en A1, B1, C1 ...? Mil gracias bởi su ayuda!

Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào María Noel,
Rất vui được giúp đỡ. Vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun trống.

Sub TestMacro2 ()
Dim dblHt As Double
Dim rngC As Range
Dim lngr As Long
Dim dblMargin As Double
Dim lngSR As Long

lngSR = 2 'Hàng nơi dữ liệu bắt đầu

dblMargin = 6 'Khoảng cách giữa các hình dạng

'On Error Tiếp tục Tiếp theo
ActiveSheet.Shapes.SelectAll
Lựa chọn. Xóa
Về lỗi GoTo 0


dblHt = Hàng (lngSR) .Height * 4

Đối với lngr = lngSR Tới Ô (lngSR, "A"). End (xlDown) .Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
Ô (lngSR, "D"). Left + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
Ô (lngSR, "D"). Top + Int ((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) .Select
Selection.Name = "Round" & Cells (lngr, "A"). Địa chỉ
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange (1) .TextFrame2.TextRange.Characters.Text = Ô (lngr, "A"). Giá trị
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
Kết thúc với
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .Font
.Bold = msoTrue
.Fill.Vosystem = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 12
Kết thúc với
Với Selection.ShapeRange.Fill
.Vible = msoTrue
Nếu Ô (lngr, "A"). Giá trị> 70 Thì
.ForeColor.RGB = RGB (0, 176, 80)
ElseIf Cells (lngr, "A"). Giá trị> = 40 Thì
.ForeColor.RGB = RGB (255, 255, 70)
Khác
.ForeColor.RGB = RGB (255, 0, 0)
Cuối Nếu
.Độ trong suốt = 0
.Chất rắn
Kết thúc với
Lngr tiếp theo
Phạm vi ("A1"). Chọn
End Sub

Sau khi bạn chạy mã VBA ở trên, bạn sẽ thấy nhiều hình dạng được tạo và màu sắc của những hình dạng này được thay đổi theo VBA.
Vui lòng xem ảnh chụp màn hình của tôi. Hy vọng nó có thể giúp ích. Chúc một ngày tốt lành.
Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Giải pháp tuyệt vời! Tôi có thể làm thế nào nếu tôi có nhiều hơn 1 hình bầu dục trong trang tính mà màu sắc thay đổi theo giá trị đầu vào trong A1, B1, C1? Cảm ơn trước vì hồi âm của bạn! 
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào mnsosa, Rất vui được giúp đỡ. Vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun trống.
Sub TestMacro2 ()
Dim dblHt As Double
Dim rngC As Range
Dim lngr As Long
Dim dblMargin As Double
Dim lngSR As Long

lngSR = 2 'Hàng nơi dữ liệu bắt đầu

dblMargin = 6 'Khoảng cách giữa các hình dạng

'On Error Tiếp tục Tiếp theo
ActiveSheet.Shapes.SelectAll
Lựa chọn. Xóa
Về lỗi GoTo 0


dblHt = Hàng (lngSR) .Height * 4

Đối với lngr = lngSR Tới Ô (lngSR, "A"). End (xlDown) .Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
Ô (lngSR, "D"). Left + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
Ô (lngSR, "D"). Top + Int ((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) .Select
Selection.Name = "Round" & Cells (lngr, "A"). Địa chỉ
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange (1) .TextFrame2.TextRange.Characters.Text = Ô (lngr, "A"). Giá trị
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
Kết thúc với
Với Selection.ShapeRange (1) .TextFrame2.TextRange.Characters (1, 2) .Font
.Bold = msoTrue
.Fill.Vosystem = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 12
Kết thúc với
Với Selection.ShapeRange.Fill
.Vible = msoTrue
Nếu Ô (lngr, "A"). Giá trị> 70 Thì
.ForeColor.RGB = RGB (0, 176, 80)
ElseIf Cells (lngr, "A"). Giá trị> = 40 Thì
.ForeColor.RGB = RGB (255, 255, 70)
Khác
.ForeColor.RGB = RGB (255, 0, 0)
Cuối Nếu
.Độ trong suốt = 0
.Chất rắn
Kết thúc với
Lngr tiếp theo
Phạm vi ("A1"). Chọn
End Sub

Sau khi bạn chạy mã VBA ở trên, bạn sẽ thấy nhiều hình dạng được tạo và màu sắc của những hình dạng này được thay đổi theo VBA. Vui lòng xem ảnh chụp màn hình của tôi. Hy vọng nó có thể giúp ích. Chúc một ngày tốt lành. Trân trọng, Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi mới làm quen với VBA và đang đấu tranh với một số thứ. Tôi cần có 9 ô khác nhau A1-A9 thay đổi màu của 9 đối tượng khác nhau. Đối tượng là hình khối 1-9. Chỉ cần làm rõ, mỗi ô chỉ thay đổi một đối tượng A1-Cube 1, v.v. Màu đỏ nếu nó không đáp ứng giá trị và màu xanh lá cây nếu nó vượt quá giá trị. Giá trị đạt / không đạt có thể thay đổi vì vậy thay vì có giá trị trong VBA, tôi cần nó tham chiếu ô A10 có giá trị đạt / không đạt. Bất kỳ cơ hội nào ai đó có thể thông qua mã mẫu để tôi làm việc cùng.

Cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hola, tuyệt vời ejemplo.
Pero como seria si tengo una forma y quiero ir coloreado poco a poco dependiendo del valor ejemplo:
Giá trị của nó là 50%
Seia mitad roja y mitad verde
Pero que se vaya llenando según el porcentaje vaya aumentando
Xếp hạng 4 trong 5
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào để faço cho biến thể dưới dạng lõi có thể được sử dụng cho định dạng văn bản, chẳng hạn như "Sim" và "Não"?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Emilly
Để giải quyết vấn đề của bạn, vui lòng áp dụng mã dưới đây:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") = "Yes" Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbRed
Else
If Range("A1") = "No" Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbGreen
End If
End If
End Sub


Xin vui lòng có một thử, hy vọng nó có thể giúp bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang,

Tôi đã thử mã VBA ban đầu và nó hoạt động, mặc dù nó sẽ không kích hoạt tích cực khi ô thay đổi. Hôm nay mã không hoạt động và tôi cũng đã thử mã đơn giản hơn của bạn và vẫn không hoạt động. Điều duy nhất đã thay đổi là tôi đã sao chép trang tính chứa mã hoạt động. Điều này sau đó sẽ dẫn đến nó không hoạt động?
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL