Page 1 of 1
ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค่าค่
Posted: Sat Nov 24, 2012 9:37 am
by tantanz
ต้องการที่จะเขียนโปรแกรมคำนวณระยะทางการเคลื่อนที่รวมค่ะ
ในส่วนของการสลับเครื่องจักร โดยช่องเซลจะแทนเครื่องจักรและเมื่อทำการสลับช่องเซลกันแล้วจะให้ช่องเซลเปลี่ยนสี
ดิฉันเจอโค๊ดในการสลับค่าในช่องเซล คือ
Sub SwitchValue()
Dim Temp As Variant
Dim Range1 As Range
Dim Range2 As Range
On Error Resume Next
Set Range1 = Application.InputBox(Prompt:="Select first range", _
Title:="Please select range", Default:=Selection.Address, Type:=8)
Set Range2 = Application.InputBox(Prompt:="Select second range", _
Title:="Please select range", Default:=Selection.Address, Type:=8)
If Range1 = "" Or Range2 = "" Then
MsgBox "You must be select both ranges each only one cell.Try again"
Exit Sub
Else
Temp = Range1
Range1 = Range2
Range2 = Temp
End If
MsgBox "Switch value complete!"
End Sub
แต่ยังไม่ทราบวิธีที่จะสลับสีในช่องเซลที รบกวนด้วยนะคะ
ในส่วนของการคำนวณนั้น ระยะทางการเคลื่อนที่รวม = ปริมาณการเคลื่อนที่*ระยะทางการเคลื่อนที่ระหว่างเครื่อง
โดยปริมาณการเคลื่อนที่นั้นดิฉันได้ใส่ค่าเป็นตารางและจัดเป็นแนวตั้งในอีกที่ เพื่อสะดวกในการคำนวณ (ไม่ทราบดิฉันควรทำเป็นแนวตั้งหรือไม่ หากไม่เหมาะสมมีวิธีการอื่นอย่างไรคะ)
สำหรับระยะทาง เครื่องจักรแต่ละเครื่องจักรจะมีพิกัดของเครื่องอยู่(ซึ่งคีย์ข้อมูลกับมือ) แต่ดิฉันไม่ทราบว่าจะทำให้เชื่อมโยงกันอย่างไร ที่เมื่อสลับเครื่องจักรแล้วจะทำให้หาระยะทางที่เปลี่ยนไปได้
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sat Nov 24, 2012 10:08 am
by snasui
tantanz wrote:ในส่วนของการสลับเครื่องจักร โดยช่องเซลจะแทนเครื่องจักรและเมื่อทำการสลับช่องเซลกันแล้วจะให้ช่องเซลเปลี่ยนสี
ช่วยยกตัวอย่างว่าต้องการสลับสีเซลล์ใดกับเซลล์ใด และที่เขียนมาแล้วนั้นให้ผลลัพธ์เป็นอย่างไร ตัวอย่าง Code ที่แนบมาไม่ได้เป็นตัวอย่างการสลับสีเซลล์ ลองปรับมาดูก่อน ติดตรงไหนค่อยถามมาครับ
tantanz wrote:แต่ยังไม่ทราบวิธีที่จะสลับสีในช่องเซลที รบกวนด้วยนะคะ
ลองบันทึก Macro เพื่อดูตัวอย่าง Code แล้วปรับปรุงมาดูก่อนครับ หลักการคือ
- เก็บค่าสีไว้ในตัวแปร A
- กำหนดสีให้กับพื้นที่แรกด้วยสีของพื้นที่ที่สอง
- กำหนดสีให้กับพื้นทีที่สองด้วยสีของตัวแปร A
ฟอรัมนี้เน้นตอบที่ติดปัญหา นั่นหมายถึงว่าได้ลองเขียนมาเองก่อน ติดปัญหาแล้วค่อยถามกันครับ
tantanz wrote:โดยปริมาณการเคลื่อนที่นั้นดิฉันได้ใส่ค่าเป็นตารางและจัดเป็นแนวตั้งในอีกที่ เพื่อสะดวกในการคำนวณ (ไม่ทราบดิฉันควรทำเป็นแนวตั้งหรือไม่ หากไม่เหมาะสมมีวิธีการอื่นอย่างไรคะ)
การทำงานกับ Code VBA ไม่มีข้อจำกัดในการวางข้อมูล ความสามารถในการนำไปใช้อยู่ที่ตัวผู้เขียนโปรแกรมครับ
tantanz wrote:สำหรับระยะทาง เครื่องจักรแต่ละเครื่องจักรจะมีพิกัดของเครื่องอยู่(ซึ่งคีย์ข้อมูลกับมือ) แต่ดิฉันไม่ทราบว่าจะทำให้เชื่อมโยงกันอย่างไร ที่เมื่อสลับเครื่องจักรแล้วจะทำให้หาระยะทางที่เปลี่ยนไปได้
ช่วยยกตัวอย่างให้เห็นภาพว่าเดิมเป็นอย่างไร เมื่อสลับแล้วเป็นอย่างไร สามารถใส่สี ตีเส้น โยงลูกศร ฯลฯ ได้เต็มที่เพื่อความเข้าใจที่ตรงกันครับ
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sat Nov 24, 2012 10:52 pm
by tantanz
อาจารย์คะ ลองเขียนโค้ดสลับตัวเลขและสีของเซลแล้วค่ะ แต่เมื่อสลับแล้วสีเพี้ยน คือรู้สึกสีจะสว่างขึ้น แก้ไข้ได้อย่างไรบ้างคะ
โค้ดที่เขียนขึ้นค่ะ
Sub SwitchColor()
Dim Temp1 As Variant
Dim Temp2 As Variant
Dim Range1 As Range
Dim Range2 As Range
On Error Resume Next
Set Range1 = Application.InputBox(Prompt:="Select first range", _
Title:="Please select range", Default:=Selection.Address, Type:=8)
Set Range2 = Application.InputBox(Prompt:="Select second range", _
Title:="Please select range", Default:=Selection.Address, Type:=8)
Temp1 = Range1.Interior.ColorIndex
Range1.Interior.ColorIndex = Range2.Interior.ColorIndex
Range2.Interior.ColorIndex = Temp1
Temp2 = Range1
Range1 = Range2
Range2 = Temp2
MsgBox "Switch value complete!"
End Sub
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sat Nov 24, 2012 11:15 pm
by snasui

ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Sub SwitchColor()
Dim Temp1 As Variant
Dim Temp2 As Variant
Dim Range1 As Range
Dim Range2 As Range
On Error Resume Next
Set Range1 = Application.InputBox(Prompt:="Select first range", _
Title:="Please select range", Default:=Selection.Address, Type:=8)
Set Range2 = Application.InputBox(Prompt:="Select second range", _
Title:="Please select range", Default:=Selection.Address, Type:=8)
Temp1 = Range1.Interior.Color
Range1.Interior.Color = Range2.Interior.Color
Range2.Interior.Color = Temp1
Temp2 = Range1
Range1 = Range2
Range2 = Temp2
MsgBox "Switch value complete!"
End Sub
สำหรับการโพสต์ Code ให้เป็น Code เพื่อความสะดวกในการอ่าน ดูตัวอย่างที่นี่ครับ
viewtopic.php?style=13&f=3&t=1187
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sat Nov 24, 2012 11:24 pm
by tantanz
ขอบคุณสำหรับคำตอบค่ะอาจารย์

Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sun Nov 25, 2012 3:06 pm
by tantanz
อาจารย์คะ หากต้องการค้นหาค่า จาก 2 ช่อง cell ทำอย่างไรคะ
ตัวอย่างเช่น จากรูปที่แนบมาด้วย หากต้องการที่ ช่อง 1 เป็น 2 และช่อง 2 เป็น 3 จะได้ คำตอบออกมาเป็น 16
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sun Nov 25, 2012 3:32 pm
by snasui

ในการจับภาพ ให้จับ
หัวคอลัมน์และหัวบรรทัดมาด้วยเพื่อจะได้ตอบแบบอ้างอิงเซลล์ได้ ลองจับภาพมาใหม่ครับ
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sun Nov 25, 2012 3:55 pm
by tantanz
ขออภัยค่ะ ภาพเป็นดังนี้ค่ะ
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sun Nov 25, 2012 4:05 pm
by snasui

ลองตามด้านล่างครับ
- สมมุติค่าที่ 1 คีย์ที่ A1, ค่าที่ 2 คีย์ที่ A2
- ที่ A3 คีย์สูตร
=INDEX($D$3:$D$13,MATCH(1,IF($B$3:$B$13=$A$1,IF($C$3:$C$13=$A$2,1)),0))
Ctrl+Shift+Enter
- เปลี่ยนค่าที่ A1, A2 แล้วสังเกตดูผล
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น
{=YourFormulas(...)
} ปีกกานี้คีย์เข้าไปเองไม่ได้
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Sun Nov 25, 2012 4:15 pm
by tantanz
ขอบคุณมากค่ะอาจารย์

Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Mon Nov 26, 2012 11:43 am
by tantanz
อาจารย์คะ จากรูป หากต้องการจะสลับ 1 กับ 4 แล้วให้คำนวณจุดศูนย์กลางของแต่ละตัวออกมายังไงคะ
จะให้แต่ละช่องเซลล์มีขนาด 0.5x0.5 ในการคำนวณตำแหน่ง 1 เมื่อคำนวณแล้วให้ได้พิกัด x เป็นดังนี้ (B3+B4)/2 และ พิกัด y เป็นดังนี้ (B3+C3)/2
ต้องการให้โปรแกรมจุดศูนย์กลางใหม่ทุกครั้งเมื่อมีการสลับตำแหน่ง รบกวนด้วยนะคะ

Re: ต้องการที่จะสลับสีช่องเซล และเมื่อสลับแล้วให้ทำการคำนวณค
Posted: Mon Nov 26, 2012 1:38 pm
by snasui

การทำเช่นนั้นต้องเขียนด้วย VBA ลองเขียนมาก่อนครับ