Page 1 of 1
การประยุกต์ สรุปตามสี กรณีที่ใช้ Conditional กำหนดอัตโนมัติได้หรือไม่
Posted: Tue Jun 05, 2018 9:52 am
by tejasid
อาจารย์ครับผมได้นำวิธีที่สอนไปประยุกต์ใช้เพื่อหาค่าสรุปตามสี ปัญหาคือ กรณีที่เราใช้Conditional กำหนดสีอัตโนมัติไม่สามารถใช้วิธีที่อาจารย์แนะนำได้ ต้องประยุกต์อย่างไรครับ
https://www.facebook.com/santipong.nasu ... yOTE0MTQ0/
Re: การประยุกต์ สรุปตามสี กรณีที่ใช้ Conditional กำหนดอัตโนมัติได้หรือไม่
Posted: Tue Jun 05, 2018 3:57 pm
by parakorn
การใช้ Conditional ไม่ใช่ สี ที่สาขามารถแปลงเป็น รหัสสีได้ครับ เป็น Code ที่ถูกเขียนเพื่อแสดงสีบน Cell ต่างหาก โดยยึดจากผลลัพท์ใน Cell นั้นๆ Compare กับช่วงข้อมูลที่กำหนดครับ
ลองอธิบายสิ่งที่ต้องการมาใหม่ แล้วแนบไฟล์มาใหม่ครับ เพราะไฟล์ที่แนบมานามสกุลไม่ใช่ .xlsm จึงไม่มี Namerange ที่ชื่อ Colorname ที่สร้างขึ้นด้วย Macro4.0 ครับ เผื่อมีเพื่อนๆ จะมีแนวทางในการหาผลลัพท์ให้ครับ
Re: การประยุกต์ สรุปตามสี กรณีที่ใช้ Conditional กำหนดอัตโนมัติได้หรือไม่
Posted: Tue Jun 05, 2018 7:12 pm
by tejasid
ผมได้แนบตัวอย่างไฟล์มาให้ใหม่เพื่อเพื่อนๆพี่ๆน้องคนไหนมีวิธีช่วยแนะนำด้วยนะครับ
Re: การประยุกต์ สรุปตามสี กรณีที่ใช้ Conditional กำหนดอัตโนมัติได้หรือไม่
Posted: Tue Jun 05, 2018 8:21 pm
by snasui
Excel4Macro Function ใช้กับการระบายสีด้วยมือ ไม่สามารถใช้กับการกำหนดด้วย Conditional Formatting หากจะรวมข้อมูลตามสีด้วยการกำหนด Conditional Formatting ต้องพึ่งพาการเขียน VBA เข้ามาช่วย ลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ
Re: การประยุกต์ สรุปตามสี กรณีที่ใช้ Conditional กำหนดอัตโนมัติได้หรือไม่
Posted: Wed Jun 06, 2018 8:02 am
by tejasid
รบกวนอาจารย์ช่วยแนะนำเพิ่มเติมด้วยครับ
Function SumByColor(CellColor As Range, rRange As Range)
Dim cSum As Long
Dim ColIndex As Integer
ColIndex = CellColor.Interior.ColorIndex
For Each cl In rRange
If cl.Interior.ColorIndex = ColIndex Then
cSum = WorksheetFunction.Sum(cl, cSum)
End If
Next cl
SumByColor = cSum
End Function
จะใช้ได้ก็ต่อเมื่อมันเป็นสีที่ระบายเองแต่ถ้าจะใช้ conditional formatting จะใช้วิธีเขียนอย่างไร
Re: การประยุกต์ สรุปตามสี กรณีที่ใช้ Conditional กำหนดอัตโนมัติได้หรือไม่
Posted: Wed Jun 06, 2018 9:10 pm
by snasui
ต้องใช้ Sub Procedure เข้ามาช่วยแทน Function Procedure ครับ
หากจะใช้ Function Procedure ก็จะต้องกำหนดเงื่อนไขให้เหมือนกับการกำหนด Conditional Formatting ครับ
ตัวอย่าง Function Procedure
Code: Select all
Function SumByColor(CellColor As Range, rRange As Range)
Dim cSum As Long
Dim ColIndex As Integer
ColIndex = CellColor.Interior.ColorIndex
For Each cl In rRange
If cl.Offset(0, -3).Value = "Or" Then
cSum = cSum + cl.Value
End If
Next cl
SumByColor = cSum
End Function