Page 1 of 1
ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Wed Jul 17, 2013 2:20 pm
by sdmania
สวัสดีครับอาจารย์ และทุกท่านที่เข้ามาอ่านกระทู้นี้ครับ
ผมใช้ excel 2003+เมนูภาษาไทยครับ
ผมแนบไฟล์ตัวอย่าง อยู่ที่ sheet1ครับ
ในเซล d1 ผมจัดรูปแบบcellโดยใช้ กำหนดเอง--> [$-41E]d mmmm yyyy ทำให้ค่าในเซลรับรูปแบบวันที่แบบ พ.ศ.ได้ครับ
ต่อมาผมลองหัดใช้ textbox(ตัวที่ดึงมาจาก โหมดออกแบบ)ครับ ผมเปิด property ---> linked cell ผมพิมพ์ d1(เพื่อรับค่า-ส่งค่าที่ D1)
ปัญหา ผมไม่สามารถแสดงค่าวันที่ใน textbox ได้ครับ รบกวนแนะนำวิธีให้ด้วยครับ
ขอถามในกระทู้นี้ต่อเนื่องเลยนะครับ
ปัญหาการแสดงค่าของTextbox หากเราจะกำหนดให้ค่าที่รับมาจากcell ส่งไปให้ textboxแสดงผล ค่าทศนิยม2ตำแหน่ง หรือการใส่ลูกน้ำหลักพัน ต้องทำอย่างไรบ้างครับรบกวนขอตัวอย่างด้วยครับ
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Wed Jul 17, 2013 2:35 pm
by snasui
ต้องกำหนดด้วย VBA ซึ่งต้องลองเขียนมาก่อน ติดตรงไหนแล้วค่อยถามกันตามกฎข้อ 5 ด้านบนครับ
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Wed Jul 17, 2013 3:14 pm
by sdmania
แหะๆ ขอโทษครับ
ผมเปิด โหมดออกแบบ(ที่เราใช้ฟอร์มของ vbe ได้น่ะครับ)
เลือก textbox
ผมคลิกขวาที่ตัวtextbox เลือกคุณสมบัติ( เมนูภาษาอังกฤษน่าจะ property ครับ) เลือก linkCell ผมเลือกให้ไปที่D1 ครับ
ปิดโหมดออกแบบ
จากนั้นจึง เปิดหน้าต่าง vbe ปุ่ม alt+f11 ครับ
Code: Select all
Private Sub TextBox2_Change()
[d1].Value = TextBox2.Value
End Sub
ให้ textbox รับค่าcell d1มาที่textboxเพื่อโชว์ค่าได้ และเมื่อเราพิมพ์ค่าใดๆที่textbox ค่าในcell D1 ก็จะเปลี่ยนตามครับ
(ผมลองไปหาใน google เค้าบอกให้ใช้ format ผมก็เอามาใช้ไม่เป็นน่ะครับ คือไม่รู้ว่าต้องเอาอะไรวางตรงไหน หรือใส่ลูกน้ำตอนใดน่ะครับ) แหะๆ
ตอนแสดงผลใน sheet1
เซลd1 ผมใส่ค่า 12-6-2556 ในเซลd1จะขึ้นว่า 12 มิถุนายน 2556
แต่ใน textbox( ชื่อ textbox2 ) ขึ้นค่า 239033 ครับ
เป้าหมายคือ อยากให้ข้อมูลใน textbox ขึ้นเป็นวันที่ "12 มิถุนายน 2556 "เหมือนในเซล์d1 ครับ
และ เราสามารถพิมพ์ในtextbox ให้เป็นวันที่อื่น เช่น เดิมเป็นวันที่12 มิถุนายน 2556 เราพิมพ์ลงไปในtextbox ว่า"12-7-2556"
เซลล์D1 ก็รับค่าแสดงเป็น "12 กรกฏาคม 2556"ได้ด้วยครับ ตั้งใจจะให้พิมพ์แก้ไขที่textbox เซลD1ก็เปลี่ยนค่าตามtextboxได้ด้วยครับ
ทำอย่างไรดีครับ
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Wed Jul 17, 2013 5:20 pm
by snasui
ในกรณี้นี้ผมทราบตั้งแต่แรกครับว่าที่ทำมาแล้วนั้นทำมาด้วยวิธีการใดและทราบว่าต้องการจะทำอะไรเช่นกัน
การจะแปลงค่าที่คีย์เป็นวันที่ให้มาแสดงใน TextBox หรือ Object อื่น ให้เป็น Format แบบในเซลล์นั้น
ต้องใช้ VBA เข้าไปกำหนด Format ของ Object นั้นครับ
ยกตัวอย่างเช่น
TextBox1.Text = Format(TextBox1."dd-mmmm-yyyy")
เป็นต้น
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Thu Jul 18, 2013 10:12 am
by sdmania
ขออภัยครับ ผมปล่อยไก่อีกแล้ว
ผมไปลองทำมาใหม่ ให้อาจารย์ช่วยชี้แนะครับ
Code: Select all
Private Sub TextBox2_Change_01()
TextBox2.Text = Format(TextBox2, "[$-41e]d mmmm yyyy")
คำถามครับ
1.ในตัวcode textbox2_change_01 นั้น ผมนึกว่า textbox จะแสดงค่าเป็นวันที่ แบบ พ.ศ.
แต่ไม่ได้ครับ ขออาจารย์ชี้แนะด้วยครับ มันเกินมา +543 เสมอครับ
2.ตัวtextbox2 ตอนนี้เมื่อผมจะเข้าไปกรอกข้อมูลเพิ่มเติม
ทำไมมันเอาไปต่อกับวันที่เดิมครับ ทำอย่างไรให้วิธีกรอกข้อมูล (ของใหม่มา ของเก่าหายไป)ครับ รบกวนด้วยครับ
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Thu Jul 18, 2013 11:49 am
by snasui
การคีย์ตัวเลขในเซลล์ให้คีย์เป็น ค.ศ. เท่านั้นและเป็นเช่นนี้เสมอ เราไม่คีย์ตัวเลขวันเดือนปีเป็น พ.ศ. เพราะจะขาดความสะดวกในการนำไปใช้ครับ
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Thu Jul 18, 2013 4:28 pm
by sdmania
ขอขอบคุณอาจารย์ครับ
ผมขอไปลองหาวิธี ตอนนี้คงใช้ ว ด ป แบบ ค.ศ. ก่อนครับ คงแยกเซล แล้วถ้าติดปัญหาตอนรวม ว ดป คงจะมารบกวนอาจารย์ครับ วันนี้ขอขอบคุณครับผม
Re: ขอวิธีให้ textbox แสดงค่าต่างๆ เช่น วันที่, ทศนิยม ครับ
Posted: Thu Jul 18, 2013 5:05 pm
by snasui
ลองเพิ่ม Code นี้เข้าไปช่วยปรับ Format ใน TextBox2 ดูครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As String
If Target.Address = [d1].Address Then
t = Application.Text([d1], "[$-41e]d mmmm yyyy")
TextBox2.Text = t
End If
End Sub