Page 1 of 1
ขอสอบถาม code vba
Posted: Thu Dec 24, 2015 10:11 pm
by kook001
รบกวนสอบถามความหมาย vba 2 ส่วนครับ
1. dpFrameset.getElementById("SalAmt").FireEvent ("onblur") ส่วนนี้ .FireEvent ("onblur") คืออะไรครับ
2. objCollection(90).Value = commanduse
objCollection(121).Value = commanduse
objCollection(121).FireEvent ("onchange") ส่วนนี้ objCollection(121) คืออะไรครับ
รบกวนทีครับ...ขอบคุณครับ
Re: ขอสอบถาม code vba
Posted: Thu Dec 24, 2015 10:20 pm
by snasui

Code ที่ว่านี้ใช้ทำอะไรและเอามาจากไหน แนบไฟล์นั้นมาด้วยจะได้สะดวกในการตอบครับ
Re: ขอสอบถาม code vba
Posted: Thu Dec 24, 2015 10:37 pm
by kook001
แนบไฟล์มาเเล้วครับ
เป็นตัว สั่งให้กรอกข้อมูล ลงฟอร์มในเวปครับ
รบกวนทีครับ มี 2 ส่วน ครับ ไม่เข้าใจครับ
ในข้อ 2 ที่ถามไป ครับ
dpFrameset.getElementById("WkPosIdSrh").Focus
Set objCollection = dpFrameset.getElementsByTagName("input")
objCollection(90).Value = commanduse
objCollection(121).Value = commanduse
objCollection(121).FireEvent ("onchange")
ส่วนเต็มๆ ครับ ไม่เข้าใจความหมายครับ
รบกวนทีครับ...ขอบคุณครับ
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 10:30 am
by bank9597
เป็นตัว สั่งให้กรอกข้อมูล ลงฟอร์มในเวปครับ

ผมลองทดสอบโคีดดูแล้ว เป็นการดึงเอา URL มาลงในชีทครับ ก็เลยงงเหมือนกัน
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 6:19 pm
by snasui
kook001 wrote:1. dpFrameset.getElementById("SalAmt").FireEvent ("onblur") ส่วนนี้ .FireEvent ("onblur") คืออะไรครับ

หมายถึงให้ Event ทำงานเหมือน Loss Focus หรือ Cursor ไปอยู่ในตำแหน่งอื่นหลังจาก Control ที่มี ID ว่า SalAmt ครับ
kook001 wrote:2. objCollection(90).Value = commanduse
objCollection(121).Value = commanduse
objCollection(121).FireEvent ("onchange") ส่วนนี้ objCollection(121) คืออะไรครับ
เป็นการกำหนดค่าให้กับสมาชิกของ Collection ในลำดับที่ 121 ครับ
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 10:21 pm
by kook001
ขอบคุณทุกท่านครับ...
รบกวนถามอีกเรื่องครับ...
Call timeDelay(100) คืออะไรครับ
เเละ Application.Wait Now + TimeValue("00:00:02") คืออะไรครับ
ต่างกันอย่างไรครับ
รบกวนทีครับ...ขอบคุณครับ
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 10:42 pm
by snasui
kook001 wrote:Call timeDelay(100) คืออะไรครับ

เป็นการเรียก Procedure ที่ชื่อ timeDelay โดยส่งค่าตัวแปรคือ 100 ไปให้ Procedure นำไปจัดการต่อ
kook001 wrote:Application.Wait Now + TimeValue("00:00:02")
เป็นการสั่งให้โปรแกรมรอ 2 วินาทีก่อนที่จะดำเนินการต่อครับ
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 10:53 pm
by kook001
ขอบคุณครับ...
ที่ผมถาม ตัว Call timeDelay(100) นั้น
จะไปเรียกใช้ในส่วนนี้ใช้ไหมครับ
Sub timeDelay(nooftime)
For i = 0 To nooftime
DoEvents
Next i
End Sub
ในส่วนนี้ คืออะไรครับ
รบกวนทีครับ...ขอบคุณครับ
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 11:06 pm
by snasui

ส่วนนั้นเป็น Sub Procedure ที่ผมกล่าวถึงในคำตอบก่อน
ส่วน Code นั้นหมายถึงอะไร ควรจะศึกษาให้ทราบจากหนังสือหรือแหล่งอื่นมาก่อน คำถามตามกระทู้นี้เป็นหลักการเบื้องต้นของโปรแกรม ควรจะศึกษาจากตำรามาตามลำดับ ไม่เหมาะที่จะใช้ลักษณะการถามตอบไปเรือย ๆ เช่นนี้ครับ
เมื่อศึกษามาแล้ว ลองเขียนแล้ว ติดปัญหาจึงค่อยนำ Code นั้นมาถามกันครับ
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 11:21 pm
by kook001
ขอบคุณครับพี่ snasui มากครับ คือได้ vba มาครับรองมาปรับใช้กลับระะบบงาน ครับ ตอนนี้แก้ได้ 90 % เเล้วครับ
รบกวนถามอีกส่วนครับ ว่าจะรองแก้ดูครับ คือ
ตามที่เคยเรียนถาม
Set objCollection = dpFrameset.getElementsByTagName("input")
objCollection(90).Value = commanduse
ตามที่ ได้คำตอบ จากพี่ snasui มาครับ เเละไปศึกษาต่อ คือเป็นการนำค่า commanduse ไปใส่ในช่อง input ที่ 90
ถ้าผมเเก้ เป็น dpFrameset.getElementById("EffDate").Value = commanduse คือนำค่า commanduse มาใส่ที่ช่อง input
ตรงๆ จะได้ไหมครับ หรือ แบบไหนดีกว่ากันครับ
รบกวนทีครับ...ขอบคุณครับผม
Re: ขอสอบถาม code vba
Posted: Fri Dec 25, 2015 11:24 pm
by snasui

ลองทำได้เลย ติดแล้วค่อยถาม ผมเน้นแก้ที่เป็นปัญหา เมื่อติดปัญหาค่อยยก Code นั้นมาถามกันครับ
อีกประการ เมื่อตั้งกระทู้ถามแล้ว ควรมารายงานผลตามกฎข้อ 6 ด้านบนเสมอ ผมพบว่ามีหลายกระทู้ที่คุณ kook001 ไม่ได้กลับไปรายงานผลครับ
Re: ขอสอบถาม code vba
Posted: Sat Dec 26, 2015 8:25 am
by kook001
สวัสดีครับ...
เเละขอโทษครับที่ไม่ได้ตอบผลครับ พี่ snasui
กระทู้เก่าที่ผมสอบถาม ได้หมดครับ ตรงกับความต้องการครับ ขอบคุณพี่ snasui เเละพี่ๆ ทุกท่านมากครับ
ส่วน vba นี้ จะรองทำดูครับ ขอมารายงานผลวัน จันทร์ นะครับ....
*** คราวต่อไปจะรายงานผมทุกครั้งครับ...ขอโทษอีกรอบครับ
Re: ขอสอบถาม code vba
Posted: Mon Dec 28, 2015 1:11 pm
by kook001
ขอบคุณ พี่ๆๆ ทุกท่าน
ได้เเล้วครับ...
เเละ
Set objCollection = dpFrameset.getElementsByTagName("input")
objCollection(90).Value = commanduse
ใช้ เป็น dpFrameset.getElementById("EffDate").Value = commanduse แทนได้ครับ
ขอบพระคุณครับ