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

วิธีเปลี่ยนสีรูปร่างตามค่าเซลล์ใน Excel

การเปลี่ยนสีรูปร่างตามค่าของเซลล์เฉพาะอาจเป็นงานที่น่าสนใจใน Excel เช่นถ้าค่าของเซลล์ใน A1 น้อยกว่า 100 สีของรูปร่างจะเป็นสีแดงถ้า A1 มากกว่า 100 และน้อยกว่า 200 สีรูปร่างเป็นสีเหลืองและเมื่อ A1 มากกว่า 200 สีของรูปร่างจะเป็นสีเขียวดังภาพต่อไปนี้ หากต้องการเปลี่ยนสีของรูปร่างตามค่าของเซลล์บทความนี้จะแนะนำวิธีการสำหรับคุณ

doc เปลี่ยนสีรูปร่าง 1

เปลี่ยนสีรูปร่างตามค่าของเซลล์ด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา เปลี่ยนสีรูปร่างตามค่าของเซลล์ด้วยรหัส VBA


โค้ด VBA ด้านล่างนี้สามารถช่วยคุณในการเปลี่ยนสีรูปร่างตามค่าของเซลล์ได้โปรดดำเนินการดังนี้:

1. คลิกขวาที่แท็บแผ่นงานที่คุณต้องการเปลี่ยนสีรูปร่างจากนั้นเลือก ดูรหัส จากเมนูบริบทในป๊อปอัป Microsoft Visual Basic สำหรับแอปพลิเคชัน โปรดคัดลอกและวางรหัสต่อไปนี้ลงในช่องว่าง โมดูล หน้าต่าง

รหัส VBA: เปลี่ยนสีรูปร่างตามค่าของเซลล์:

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 เปลี่ยนสีรูปร่าง 2

2. จากนั้นเมื่อคุณป้อนค่าในเซลล์ A1 สีของรูปร่างจะเปลี่ยนไปพร้อมกับค่าของเซลล์ตามที่คุณกำหนด

หมายเหตุ: ในโค้ดด้านบน A1 คือค่าเซลล์สีรูปร่างของคุณจะเปลี่ยนไปตามและค่า รี 1 คือชื่อรูปร่างของรูปร่างที่คุณแทรกคุณสามารถเปลี่ยนได้ตามต้องการ


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (18)
ได้รับคะแนน 4 จาก 5 · การจัดอันดับ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ถ้าเรามีวัตถุมากกว่า 1 รายการในแผ่นงานที่สีเปลี่ยนไปตามค่าที่ป้อนไว้ใน A1, B1,C1....
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีเอ็ดเวิร์ด
ดีใจที่ได้ช่วยเหลือ โปรดคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลที่ว่างเปล่า

ทดสอบย่อย Macro2()
Dim dblHt เป็นสองเท่า
Dim rngC เป็นช่วง
หรี่ lngr ตราบ
Dim dblMargin เป็นสองเท่า
ติ่มซำ lngSR นาน

lngSR = 2 'แถวที่ข้อมูลเริ่มต้น

dblMargin = 6 ' ระยะห่างระหว่างรูปร่าง

'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ต่อไป
ActiveSheet.Shapes.SelectAll
การเลือก ลบ
เมื่อเกิดข้อผิดพลาด GoTo 0


dblHt = แถว (lngSR).ความสูง * 4

สำหรับ lngr = lngSR To Cells(lngSR, "A")).End(xlDown).Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
เซลล์(lngSR, "D")). ซ้าย + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
เซลล์(lngSR, "D")).Top + Int((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) เลือก
Selection.Name = "Round" & Cells(lngr, "A") ที่อยู่
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Cells(lngr, "A")).Value
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
จบด้วย
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).Font
.Bold = msoTrue
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.เติม.ของแข็ง
.ขนาด = 12
จบด้วย
ด้วย Selection.ShapeRange.Fill
.Visible = msoTrue
ถ้า Cells(lngr, "A")).Value > 70 แล้ว
.ForeColor.RGB = RGB(0, 176, 80)
ElseIf Cells(lngr, "A")).Value >= 40 แล้ว
.ForeColor.RGB = RGB(255, 255, 70)
อื่น
.ForeColor.RGB = RGB(255, 0, 0)
End If
.ความโปร่งใส = 0
.แข็ง
จบด้วย
ถัดไป
ช่วง("A1") เลือก
ย่อยสิ้นสุด

หลังจากที่คุณเรียกใช้โค้ด VBA ด้านบน คุณจะเห็นรูปร่างหลายแบบถูกสร้างขึ้น และสีของรูปร่างเหล่านี้จะเปลี่ยนไปตาม VBA
โปรดดูภาพหน้าจอของฉัน หวังว่ามันจะช่วยได้ ขอให้เป็นวันที่ดี.
ขอแสดงความนับถือ
แมนดี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมี 300 รูปร่างในแผ่นงาน เป็นไปได้ไหมที่จะตรวจสอบค่าของเซลล์ที่อยู่ติดกันหรือเซลล์ที่เชื่อมโยง (ว่างหรือไม่ว่าง) ในแผ่นงานและระบายสีรูปร่างที่เชื่อมโยงผ่านรหัส VBA
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
โซลูชัน vba ที่ยอดเยี่ยม

คุณยังสามารถใช้การจัดรูปแบบตามเงื่อนไขเพื่อระบายสีรูปร่างได้

ตั้งชื่อของแต่ละรูปร่างเป็นค่าของเซลล์ การใช้ With Each Shape จากนั้นกำหนดสีรูปร่างเป็นสีเซลล์สำหรับรูปร่างที่มีชื่อทั้งหมด

สีของเซลล์อาจเปลี่ยนแปลงได้โดยใช้การจัดรูปแบบตามเงื่อนไขตามค่าตัวเลข

ตัวอย่างเช่น สีของกึ่งโปร่งใสซ้อนทับกันบนแผนที่เมือง สามารถใช้เพื่อระบุความหนาแน่นของประชากรต่อบล็อกแบบกราฟิกด้วยรูปแบบสีที่ไล่ระดับ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณสามารถแบ่งปันตัวอย่างของรหัสได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
จะนำไปใช้ได้อย่างไรถ้าคุณมีหลายรูปร่างในแผ่นงานเดียวกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ยาเซอร์
ดีใจที่ได้ช่วยเหลือ โปรดคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลที่ว่างเปล่า

ทดสอบย่อย Macro2()
Dim dblHt เป็นสองเท่า
Dim rngC เป็นช่วง
หรี่ lngr ตราบ
Dim dblMargin เป็นสองเท่า
ติ่มซำ lngSR นาน

lngSR = 2 'แถวที่ข้อมูลเริ่มต้น

dblMargin = 6 ' ระยะห่างระหว่างรูปร่าง

'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ต่อไป
ActiveSheet.Shapes.SelectAll
การเลือก ลบ
เมื่อเกิดข้อผิดพลาด GoTo 0


dblHt = แถว (lngSR).ความสูง * 4

สำหรับ lngr = lngSR To Cells(lngSR, "A")).End(xlDown).Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
เซลล์(lngSR, "D")). ซ้าย + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
เซลล์(lngSR, "D")).Top + Int((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) เลือก
Selection.Name = "Round" & Cells(lngr, "A") ที่อยู่
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Cells(lngr, "A")).Value
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
จบด้วย
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).Font
.Bold = msoTrue
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.เติม.ของแข็ง
.ขนาด = 12
จบด้วย
ด้วย Selection.ShapeRange.Fill
.Visible = msoTrue
ถ้า Cells(lngr, "A")).Value > 70 แล้ว
.ForeColor.RGB = RGB(0, 176, 80)
ElseIf Cells(lngr, "A")).Value >= 40 แล้ว
.ForeColor.RGB = RGB(255, 255, 70)
อื่น
.ForeColor.RGB = RGB(255, 0, 0)
End If
.ความโปร่งใส = 0
.แข็ง
จบด้วย
ถัดไป
ช่วง("A1") เลือก
ย่อยสิ้นสุด

หลังจากที่คุณเรียกใช้โค้ด VBA ด้านบน คุณจะเห็นรูปร่างหลายแบบถูกสร้างขึ้น และสีของรูปร่างเหล่านี้จะเปลี่ยนไปตาม VBA
โปรดดูภาพหน้าจอของฉัน หวังว่ามันจะช่วยได้ ขอให้เป็นวันที่ดี.
ขอแสดงความนับถือ
แมนดี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับสิ่งนี้ซึ่งมีประโยชน์จริงๆ

ตอนนี้ฉันต้องการใช้กับตารางเดือยบนเวิร์กชีตอื่นซึ่งควบคุมข้อมูลบนแผ่นงานด้วยรูปร่างที่ฉันต้องการเปลี่ยนสี อย่างไรก็ตาม เมื่อฉันเปลี่ยนการเลือกบนตารางเดือย ข้อมูลบนเวิร์กชีตที่มีรูปร่างจะได้รับการอัปเดต แต่โค้ดไม่ทำงาน ดังนั้นรูปร่างจึงไม่เปลี่ยนสี

ถ้าฉันเปลี่ยนค่าด้วยตนเอง โค้ดจะทำงานและสีของรูปร่างจะได้รับการอัปเดต

คำถาม: ฉันต้องเพิ่มอะไรในโค้ดด้านบนเพื่อให้ทำงานโดยอัตโนมัติ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะทำให้ไพรเวตย่อยอ่านผลลัพธ์จากการคำนวณ AVERAGE(C1,C5,C9) ได้อย่างไร

Sub ใช้งานได้กับค่าตัวเลขเท่านั้น ความคิดและข้อเสนอแนะใด ๆ ที่ชื่นชมอย่างมาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Cesare สบายดีไหม ฉันสังเกตว่าโค้ด VBA สามารถทำงานกับการคำนวณ AVERAGE(number, number...) ได้ แต่เคล็ดลับคือทุกครั้งที่คุณเปลี่ยนค่าในการคำนวณ คุณต้องดับเบิลคลิกที่สูตรในเซลล์เพื่อให้ VBA ทำงานได้อีกครั้ง 
ตัวอย่างเช่น ในเซลล์ A1 หลังจากที่เราป้อนสูตรคือ =AVERAGE(C2:D3) VBA จะทำงานและเปลี่ยนสีของรูปร่างตามนั้น โปรดดูภาพหน้าจอ 1 C0.2:D2 ผลลัพธ์ที่ส่งคืนในเซลล์ A3 เปลี่ยนไป แต่สีของรูปร่างยังไม่เปลี่ยนแปลง ในกรณีนี้ เราต้องดับเบิลคลิกที่สูตรในเซลล์ A1 เพื่อให้ VBA ทำงานได้ จากนั้นสีของรูปทรงจะเปลี่ยนไปตามนั้น โปรดดูภาพหน้าจอที่ 1 และ 2
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี... วิธีแก้ปัญหาที่ยอดเยี่ยม... แต่ฉันจะนำไปใช้กับรูปร่างต่างๆ ได้อย่างไรโดยยึดตามค่าที่สอดคล้องกันของช่วงของเซลล์ ขอบคุณมากล่วงหน้าสำหรับความช่วยเหลือของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีไรอัน
ดีใจที่ได้ช่วยเหลือ โปรดคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลที่ว่างเปล่า

ทดสอบย่อย Macro2()
Dim dblHt เป็นสองเท่า
Dim rngC เป็นช่วง
หรี่ lngr ตราบ
Dim dblMargin เป็นสองเท่า
ติ่มซำ lngSR นาน

lngSR = 2 'แถวที่ข้อมูลเริ่มต้น

dblMargin = 6 ' ระยะห่างระหว่างรูปร่าง

'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ต่อไป
ActiveSheet.Shapes.SelectAll
การเลือก ลบ
เมื่อเกิดข้อผิดพลาด GoTo 0


dblHt = แถว (lngSR).ความสูง * 4

สำหรับ lngr = lngSR To Cells(lngSR, "A")).End(xlDown).Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
เซลล์(lngSR, "D")). ซ้าย + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
เซลล์(lngSR, "D")).Top + Int((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) เลือก
Selection.Name = "Round" & Cells(lngr, "A") ที่อยู่
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Cells(lngr, "A")).Value
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
จบด้วย
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).Font
.Bold = msoTrue
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.เติม.ของแข็ง
.ขนาด = 12
จบด้วย
ด้วย Selection.ShapeRange.Fill
.Visible = msoTrue
ถ้า Cells(lngr, "A")).Value > 70 แล้ว
.ForeColor.RGB = RGB(0, 176, 80)
ElseIf Cells(lngr, "A")).Value >= 40 แล้ว
.ForeColor.RGB = RGB(255, 255, 70)
อื่น
.ForeColor.RGB = RGB(255, 0, 0)
End If
.ความโปร่งใส = 0
.แข็ง
จบด้วย
ถัดไป
ช่วง("A1") เลือก
ย่อยสิ้นสุด

หลังจากที่คุณเรียกใช้โค้ด VBA ด้านบน คุณจะเห็นรูปร่างหลายแบบถูกสร้างขึ้น และสีของรูปร่างเหล่านี้จะเปลี่ยนไปตาม VBA
โปรดดูภาพหน้าจอของฉัน หวังว่ามันจะช่วยได้ ขอให้เป็นวันที่ดี.
ขอแสดงความนับถือ
แมนดี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
¿Cómo hacemos si tenemos más de 1 Oval en la hoja de trabajo cuyos colores cambian de acuerdo con el valor ingresado, por ejemplo, en A1, B1, C1...? ขอบคุณมากสำหรับ su ayuda!

ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี มาริอา โนเอล
ดีใจที่ได้ช่วยเหลือ โปรดคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลที่ว่างเปล่า

ทดสอบย่อย Macro2()
Dim dblHt เป็นสองเท่า
Dim rngC เป็นช่วง
หรี่ lngr ตราบ
Dim dblMargin เป็นสองเท่า
ติ่มซำ lngSR นาน

lngSR = 2 'แถวที่ข้อมูลเริ่มต้น

dblMargin = 6 ' ระยะห่างระหว่างรูปร่าง

'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ต่อไป
ActiveSheet.Shapes.SelectAll
การเลือก ลบ
เมื่อเกิดข้อผิดพลาด GoTo 0


dblHt = แถว (lngSR).ความสูง * 4

สำหรับ lngr = lngSR To Cells(lngSR, "A")).End(xlDown).Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
เซลล์(lngSR, "D")). ซ้าย + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
เซลล์(lngSR, "D")).Top + Int((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) เลือก
Selection.Name = "Round" & Cells(lngr, "A") ที่อยู่
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Cells(lngr, "A")).Value
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
จบด้วย
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).Font
.Bold = msoTrue
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.เติม.ของแข็ง
.ขนาด = 12
จบด้วย
ด้วย Selection.ShapeRange.Fill
.Visible = msoTrue
ถ้า Cells(lngr, "A")).Value > 70 แล้ว
.ForeColor.RGB = RGB(0, 176, 80)
ElseIf Cells(lngr, "A")).Value >= 40 แล้ว
.ForeColor.RGB = RGB(255, 255, 70)
อื่น
.ForeColor.RGB = RGB(255, 0, 0)
End If
.ความโปร่งใส = 0
.แข็ง
จบด้วย
ถัดไป
ช่วง("A1") เลือก
ย่อยสิ้นสุด

หลังจากที่คุณเรียกใช้โค้ด VBA ด้านบน คุณจะเห็นรูปร่างหลายแบบถูกสร้างขึ้น และสีของรูปร่างเหล่านี้จะเปลี่ยนไปตาม VBA
โปรดดูภาพหน้าจอของฉัน หวังว่ามันจะช่วยได้ ขอให้เป็นวันที่ดี.
ขอแสดงความนับถือ
แมนดี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ทางออกที่ดี! ฉันจะทำอย่างไรถ้ามีมากกว่า 1 วงรีในเวิร์กชีตซึ่งสีเปลี่ยนไปตามค่าที่ป้อนใน A1, B1,C1 ขอขอบคุณล่วงหน้าสำหรับการตอบกลับของคุณ! 
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี mnsosa ดีใจที่ได้ช่วย โปรดคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลที่ว่างเปล่า
ทดสอบย่อย Macro2()
Dim dblHt เป็นสองเท่า
Dim rngC เป็นช่วง
หรี่ lngr ตราบ
Dim dblMargin เป็นสองเท่า
ติ่มซำ lngSR นาน

lngSR = 2 'แถวที่ข้อมูลเริ่มต้น

dblMargin = 6 ' ระยะห่างระหว่างรูปร่าง

'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ต่อไป
ActiveSheet.Shapes.SelectAll
การเลือก ลบ
เมื่อเกิดข้อผิดพลาด GoTo 0


dblHt = แถว (lngSR).ความสูง * 4

สำหรับ lngr = lngSR To Cells(lngSR, "A")).End(xlDown).Row
ActiveSheet.Shapes.AddShape (msoShapeOval, _
เซลล์(lngSR, "D")). ซ้าย + ((lngr - lngSR) Mod 4) * dblHt + dblMargin, _
เซลล์(lngSR, "D")).Top + Int((lngr - lngSR) / 4) * dblHt + dblMargin, _
dblHt - 2 * dblMargin, _
dblHt - 2 * dblMargin) เลือก
Selection.Name = "Round" & Cells(lngr, "A") ที่อยู่
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Cells(lngr, "A")).Value
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
จบด้วย
ด้วย Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 2).Font
.Bold = msoTrue
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.เติม.ของแข็ง
.ขนาด = 12
จบด้วย
ด้วย Selection.ShapeRange.Fill
.Visible = msoTrue
ถ้า Cells(lngr, "A")).Value > 70 แล้ว
.ForeColor.RGB = RGB(0, 176, 80)
ElseIf Cells(lngr, "A")).Value >= 40 แล้ว
.ForeColor.RGB = RGB(255, 255, 70)
อื่น
.ForeColor.RGB = RGB(255, 0, 0)
End If
.ความโปร่งใส = 0
.แข็ง
จบด้วย
ถัดไป
ช่วง("A1") เลือก
ย่อยสิ้นสุด

หลังจากที่คุณเรียกใช้โค้ด VBA ด้านบน คุณจะเห็นรูปร่างหลายแบบถูกสร้างขึ้น และสีของรูปร่างเหล่านี้จะเปลี่ยนไปตาม VBA โปรดดูภาพหน้าจอของฉัน หวังว่ามันจะช่วยได้ มีวันที่ดี. ขอแสดงความนับถือ Mandy
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันยังใหม่กับ VBA และกำลังดิ้นรนกับบางสิ่ง ฉันต้องมี 9 เซลล์ที่แตกต่างกัน A1-A9 เปลี่ยนสีของวัตถุที่แตกต่างกัน 9 แบบ วัตถุเป็นลูกบาศก์ 1-9 เพื่ออธิบายให้กระจ่าง แต่ละเซลล์จะต้องเปลี่ยนวัตถุ A1-Cube 1 เพียงชิ้นเดียว เป็นต้น สีแดงหากไม่เป็นไปตามค่าและสีเขียวหากเกินค่า ค่าผ่าน/ไม่ผ่านสามารถเปลี่ยนแปลงได้ แทนที่จะมีค่าใน VBA ฉันต้องการใช้เพื่ออ้างอิงเซลล์ A10 ซึ่งมีค่าผ่าน/ไม่ผ่าน มีโอกาสที่ใครบางคนสามารถอ่านโค้ดตัวอย่างให้ฉันได้ทำงานด้วย

ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Hola ตัวอย่างที่ยอดเยี่ยม
Pero como seria si tengo una forma y quiero ir coloreado poco a poco การพึ่งพาอาศัยกัน ตัวอย่าง:
Si el ความกล้าหาญ es 50%
Seia mitad roja y mitad verde
Pero que se vaya llenando según el porcentaje vaya เพิ่ม
ได้รับคะแนน 4 จาก 5
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ