Page 1 of 1

คำสั่งนำตัวเลขจากcellของexcelไป textboxหรือ label

Posted: Fri Nov 02, 2012 1:38 pm
by idfordxxx
ผมมีปัญหาในการนำตัวเลขจาก cell ใน excel ไปใส่ใน textbox หรือ label ซึ่งอยู่ใน Userform ของ vba ซึ่งcodeที่ผมเขียน ไม่เกิดการเคลื่อนย้ายข้อมูล ผมไม่รู้ว่าผิดพลาดตรงไหนช่วยแนะนำด้วยครับ ดังนี้
Private Sub TextBox2_Change()
TextBox2.Text = Worksheets("sheet1").Range("b6").Value
-----------------ด้านล่างคือcodeที่พยายามเขียน-----------------------
'TextBox2.value = [b6].Value
'TextBox2.Text = Int(count)
'count.Value = Worksheets("sheet1").Range("b6").Value
'TextBox2.Text = count.Value
'TextBox2.SetFocus
'Worksheets("sheet1").Range("b6").Select
'Range("textbox2.text").Value = b6.Value
'Worksheets("sheet1").Range("b6") = Me.TextBox2
'Worksheets("sheet1").Range("b6").Value = TextBox2.Text
-----------------------------------------------------------------------------------
End Sub
และ
Private Sub Label4_Click()
Label4.Caption = Worksheets("sheet1").Range("b6").Value
End Sub

ซึ่ง Textbox2 และ Label4 อยู่ใน UserForm2 (UserForm) ตามเอกสารแนบ
ขออีกเรื่องหนึ่งครับ ไม่ทราบว่าข้อมูลใน label สามารถส่งไปยัง cell ของ excel ได้หรือไม่ มีชุดคำสั่งให้สามารถทำแบบนี้ได้หรือไม่ ซึ่งตอนนี้ผมสามารถเขียนให้ข้อมูลจาก textbox ไปที่ cellของexcelได้ แต่label ทำไม่ได้ ช่วยแนะนำด้วยนะครับ ขอบคุณอีกครั้งครับ

Re: คำสั่งนำตัวเลขจากcellของexcelไป textboxหรือ label

Posted: Fri Nov 02, 2012 2:07 pm
by niwat2811
ลองแก้ดูตามนี้ครับ ไม่ทราบว่าตรงกับความต้องการหรือเปล่า

Code: Select all

Private Sub Label4_Click()
Label4.Caption = Worksheets("Sheet1").Range("B6").Value
End Sub
ที่ Textbox2 ให้คลิกขวา เลือก Properties ไปที่ ControlSource ป้อน =Sheet1!B6
ถ้าไม่ได้ยังไงก็รอให้ท่านอื่นมาช่วยตอบนะครับ

Re: คำสั่งนำตัวเลขจากcellของexcelไป textboxหรือ label

Posted: Sun Nov 04, 2012 9:39 am
by snasui
:D
idfordxxx wrote:ผมมีปัญหาในการนำตัวเลขจาก cell ใน excel ไปใส่ใน textbox หรือ label ซึ่งอยู่ใน Userform ของ vba ซึ่งcodeที่ผมเขียน ไม่เกิดการเคลื่อนย้ายข้อมูล ผมไม่รู้ว่าผิดพลาดตรงไหนช่วยแนะนำด้วยครับ ดังนี้
คำว่าไม่เกิดการเคลื่อนย้ายข้อมูลหมายความว่าอย่างไรครับ

ปกติการใช้ Event ตามลักษณะที่ถามมานี้ ควรจะเกิด Event ใน Object หนึ่งแล้วไปกำหนดค่าให้กับอีก Object หนึ่ง เช่นเกิดการคลิกปุ่มใด ๆ เกิดการเปลี่ยนแปลงใน TextBox1 แล้วค่อยกำหนดค่าให้กับ TextBox2 เช่นนี้เป็นต้น ถึงจะเห็นการเปลี่ยนแปลงว่าได้ทำอะไรและค่าแสดงเมื่อใด

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

กรณีต้องการนำ Text ใน Label4 ไปเป็นค่าในเซลล์ ลองปรับ Copy เป็นตามด้านล่าง สำหรับการเขียนโปรแกรมใด ๆ ค่าที่ต้องการให้เป็นจะอยู่ด้านซ้ายเสมอ ส่วนค่าที่อยู่ด้านขวาคือค่าที่เรากำหนดค่าให้กับด้านซ้ายของเครื่องหมาย =

Code: Select all

Private Sub Label4_Click()
    'Label4.Caption = Worksheets("sheet1").Range("b6").Value
    Worksheets("sheet1").Range("b6").Value = Label4.Caption
End Sub
สำหรับการวาง Code ให้เป็น Code ดูตัวอย่างจากที่นี่ เพื่อจะได้สะดวกในการอ่านและการ Copy ไปทดสอบครับ viewtopic.php?f=3&t=1187