Page 1 of 1

ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 1:03 am
by xtikx
สอบถามค่ะพอดีใส่ code ใน userform ของ commandbottom (Add)
เมื่อคลิกปุ่ม Add ข้อมูลที่กรอกจะต่ออยู่ในตารางตามแถวเรียงลงมา ซึ่งก่อนหน้าสามารถ run ได้ปกติ
แต่พอเปิดไฟล์อีกรอบกลับ error ไม่สามารถเพิ่มข้อมูลได้ค่ะ ไม่ทราบว่าเราจะสามารถแก้ไข code ได้อย่างไรคะ

Code: Select all

Private Sub Add_Click()
    Dim ws As Worksheet
    Dim newrow As ListRow
    
    Set ws = ActiveSheet
    Set newrow = ws.ListObjects("TruckScale").ListRows.Add

    'Add Value
    With newrow
    .Range(1).Value = UserForm1.InputDate
    .Range(2).Value = UserForm1.InputFarm
    .Range(3).Value = UserForm1.InputCar
    .Range(4).Value = UserForm1.InputTypeCar
    .Range(5).Value = UserForm1.InputCarRegistration
    .Range(6).Value = UserForm1.InputGoods
    .Range(7).Value = UserForm1.InputAmount
End With
    'Clear
    InputDate.Value = ""
    InputFarm.Value = ""
    InputTypeCar.Value = ""
    InputCar.Value = ""
    InputCarRegistration = ""
    InputGoods = ""
    InputAmount.Value = ""
    
    'Refresh
ThisWorkbook.RefreshAll
End Sub

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 8:10 am
by snasui
:D ผมทดสอบแล้วเปิดได้ตามปกติ ไม่ทราบว่าภาพการฟ้องแสดงเป็นเช่นไร กรุณาจับภาพนั้นแนบมาด้วยครับ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 11:29 am
by xtikx
snasui wrote: Sat Aug 27, 2022 8:10 am :D ผมทดสอบแล้วเปิดได้ตามปกติ ไม่ทราบว่าภาพการฟ้องแสดงเป็นเช่นไร กรุณาจับภาพนั้นแนบมาด้วยครับ
จากรูปที่แนบมา code จะ error ตรงที่กำหนด newrow ค่ะ ไม่ทราบว่าเกิดจากอะไรหรอคะ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 11:42 am
by snasui
:D ลองปรับเป็นด้านล่างแล้วสังเกตว่ายังเกิดอาการเช่นเดิมอีกหรือไม่ครับ

Code: Select all

'Other code
'    Dim newrow As ListRow
Dim newrow As Range
Set ws = ActiveSheet
Set newrow = ws.ListObjects("TruckScale").ListRows.Add.Range

'Add Value
With newrow
    .Cells(1).Value = UserForm1.InputDate
    .Cells(2).Value = UserForm1.InputFarm
    .Cells(3).Value = UserForm1.InputCar
    .Cells(4).Value = UserForm1.InputTypeCar
    .Cells(5).Value = UserForm1.InputCarRegistration
    .Cells(6).Value = UserForm1.InputGoods
    .Cells(7).Value = UserForm1.InputAmount
End With
'Other code

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 12:31 pm
by xtikx
snasui wrote: Sat Aug 27, 2022 11:42 am :D ลองปรับเป็นด้านล่างแล้วสังเกตว่ายังเกิดอาการเช่นเดิมอีกหรือไม่ครับ

Code: Select all

'Other code
'    Dim newrow As ListRow
Dim newrow As Range
Set ws = ActiveSheet
Set newrow = ws.ListObjects("TruckScale").ListRows.Add.Range

'Add Value
With newrow
    .Cells(1).Value = UserForm1.InputDate
    .Cells(2).Value = UserForm1.InputFarm
    .Cells(3).Value = UserForm1.InputCar
    .Cells(4).Value = UserForm1.InputTypeCar
    .Cells(5).Value = UserForm1.InputCarRegistration
    .Cells(6).Value = UserForm1.InputGoods
    .Cells(7).Value = UserForm1.InputAmount
End With
'Other code

สามารถเพิ่ม row ได้แล้วนะคะแต่ตั้งแต่ row ที่ 3 ไปจะขึ้น error ที่จุดเดิมเลยค่ะ แล้วพอกรอกข้อมูลไปใหม่จะเหมือนแค่ clear form ไปเฉยๆ พอกดออกแล้วเข้าใหม่ข้อมูลที่กรอกไปก่อนหน้าก็ขึ้นใน table ปกติค่ะ จะเป็นแบบนี้วนไปเรื่อย ๆ เลยค่ะ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 1:02 pm
by snasui
:D กรณีนี้ผมช่วยได้แค่นี้เนื่องจากในเครื่องผมไม่พบอาการดังกล่าว ลองนำไฟล์ที่ประกอบด้วย Code เดิมที่เคยรันได้ไปรันบนเครื่องอื่นแล้วสังเกตว่าเกิดเหตุการณ์เช่นนี้หรือไม่ครับ

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

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 1:21 pm
by xtikx
snasui wrote: Sat Aug 27, 2022 1:02 pm :D กรณีนี้ผมช่วยได้แค่นี้เนื่องจากในเครื่องผมไม่พบอาการดังกล่าว ลองนำไฟล์ที่ประกอบด้วย Code เดิมที่เคยรันได้ไปรันบนเครื่องอื่นแล้วสังเกตว่าเกิดเหตุการณ์เช่นนี้หรือไม่ครับ

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

เข้าใจแล้วค่ะขอบคุณมากๆนะคะ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 1:38 pm
by xtikx
snasui wrote: Sat Aug 27, 2022 1:02 pm :D กรณีนี้ผมช่วยได้แค่นี้เนื่องจากในเครื่องผมไม่พบอาการดังกล่าว ลองนำไฟล์ที่ประกอบด้วย Code เดิมที่เคยรันได้ไปรันบนเครื่องอื่นแล้วสังเกตว่าเกิดเหตุการณ์เช่นนี้หรือไม่ครับ

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

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 1:42 pm
by snasui
:D หากใช้งานปกติแล้วไม่มีปัญหา พอรันโปรแกรมแล้วค้างก็สามารถสันนิษฐานได้ว่าเกี่ยวกับ Code ที่รันครับ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 1:53 pm
by xtikx
snasui wrote: Sat Aug 27, 2022 1:42 pm :D หากใช้งานปกติแล้วไม่มีปัญหา พอรันโปรแกรมแล้วค้างก็สามารถสันนิษฐานได้ว่าเกี่ยวกับ Code ที่รันครับ
แล้วอย่างนี้สามารถแก้ได้อย่างไรหรอคะเราสามารถแก้ที่ code ได้เลยไหมคะ หรือว่าต้องแก้ที่ตัวเครื่องคะ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 2:09 pm
by snasui
:D เป็นที่ Code ก็ต้องแก้ที่ Code ครับ

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 7:07 pm
by xtikx
snasui wrote: Sat Aug 27, 2022 2:09 pm :D เป็นที่ Code ก็ต้องแก้ที่ Code ครับ
รบกวนช่วยอธิบายวิธีแก้ได้ไหมคะ พอดียังไม่ค่อยเข้าใจการแก้ code เท่าไหร่เลยค่ะ
ขอบพระคุณมาก ๆ ค่ะ🙏

Re: ขอคำแนะนำวิธีแก้ Debug VBA

Posted: Sat Aug 27, 2022 7:31 pm
by snasui
:D จะบอกวิธีแก้ได้ก็ต่อเมื่อทราบว่าเกิดปัญหาตรงไหน เขียน Code ไว้อย่างไรเสียก่อนหรืออย่างน้อยก็ต้องทราบเบื้องต้นว่าเกิดปัญหาลักษณะไหน จึงจะพอบอกให้ไปดูส่วนที่เขียนแล้วอาจจะเกิดปัญหาเช่นนั้น ซึ่งผู้ถามจะต้องมีความรู้ความชำนาญในการติดตามแก้ไขปัญหา (Debug) พอสมควรครับ

แค่บอกภาพรวมว่าเครื่องค้างโดยที่ไม่รู้ว่าเขียน Code ไว้อย่างไรนั้นไม่มีใครตอบให้ได้ตรงประเด็นครับ