snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
noonudo
Member
Posts: 3 Joined: Sun Oct 28, 2018 9:10 pm
#1
Post
by noonudo » Sun Oct 28, 2018 9:33 pm
ต้องการให้ cell เปลี่ยนสีตามค่าที่เปลี่ยนแปลงค่ะ
ซึ่งค่าใน cell คือราคาหุ้นที่เปลี่ยนไปเรื่อยๆ
ต้องการให้เปลี่ยนโดยเปรียบเทียบกับค่าที่แล้ว (ในcellเดียวกัน)
ถ้ามากขึ้นให้เป็นสีเขียว ลดลงเป็นสีแดง
ตอนนี้คือทำได้แค่ เซลเดียวค่ะ คือเซลที่ใส่ค่าไว้ ในวงกลมตามรูปข้างล่าง
พอเปลี่ยนเป็นหลายเซล (ในตัวอย่างนี้ต้องการ B2:B5)
มันขึ้น runtime error 13 type mismatch
รบกวนผู้รู้ด้วยนะคะ ขอบคุณมากๆเลยค่ะ
นุ่น
Attachments
sample123.xlsm
ไฟล์ตัวอย่าง (16.74 KiB) Downloaded 11 times
รูป ตัวอย่าง1 sample1.jpg (54.45 KiB) Viewed 114 times
รูป ตัวอย่าง2 sample2.jpg (34.13 KiB) Viewed 114 times
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#2
Post
by puriwutpokin » Mon Oct 29, 2018 10:47 pm
ปรับโค้ดเป็น เอาโค้ดไปใส่ที่ Sheet1
Code: Select all
Public strOldValue As String
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
strOldValue = Target.Value
End Sub
Public Sub Worksheet_Change(ByVal Target As Range)
Dim strNewValue As String
If Target.Column = 2 Then
strNewValue = Target.Value
If strOldValue > strNewValue Then
Target.Interior.ColorIndex = 3
Else
If strOldValue < strNewValue Then
Target.Interior.ColorIndex = 4
Else
Target.Interior.ColorIndex = 0
End If
End If
End If
End Sub
noonudo
Member
Posts: 3 Joined: Sun Oct 28, 2018 9:10 pm
#3
Post
by noonudo » Tue Oct 30, 2018 7:21 pm
ขอบคุณมากๆๆเลยนะคะ ^___^
noonudo
Member
Posts: 3 Joined: Sun Oct 28, 2018 9:10 pm
#4
Post
by noonudo » Tue Oct 30, 2018 7:46 pm
รบกวนขอถามเพิ่มเติมนะคะ ถ้าต้องการจะทำแบบเดิม
คือเปลี่ยนสีเซลตามค่าใหม่ที่เกิดขึ้น เทียบจากค่าที่แล้วในเซลเดียวกัน
แต่ข้อมูลเป็นค่าที่ดึงมาจากโปรแกรมอื่น คือเป็น RTD link
สามารถทำได้มั้ยคะ ถ้าทำได้ สามารถเลือกช่วงข้อมูล/เฉพาะบาง column ได้มั้ยคะ
ลองเอาโค้ดนี้ไปใส่ที่ sheet1 แล้วไม่ได้ค่ะ
ขอบคุณนะคะ _/\_
Attachments
Book1.xlsm
File ตัวอย่าง RTD link (16.03 KiB) Downloaded 13 times
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Wed Oct 31, 2018 12:22 am
ในเครื่องผมสูตร RTD เป็น #N/A จึงไม่สามารถช่วยทดสอบและแก้ Code ให้ได้ครับ