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

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

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

ลองปรับเป็นด้านล่างแล้วสังเกตว่ายังเกิดอาการเช่นเดิมอีกหรือไม่ครับ
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

ลองปรับเป็นด้านล่างแล้วสังเกตว่ายังเกิดอาการเช่นเดิมอีกหรือไม่ครับ
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

กรณีนี้ผมช่วยได้แค่นี้เนื่องจากในเครื่องผมไม่พบอาการดังกล่าว ลองนำไฟล์ที่ประกอบด้วย 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

กรณีนี้ผมช่วยได้แค่นี้เนื่องจากในเครื่องผมไม่พบอาการดังกล่าว ลองนำไฟล์ที่ประกอบด้วย 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

กรณีนี้ผมช่วยได้แค่นี้เนื่องจากในเครื่องผมไม่พบอาการดังกล่าว ลองนำไฟล์ที่ประกอบด้วย Code เดิมที่เคยรันได้ไปรันบนเครื่องอื่นแล้วสังเกตว่าเกิดเหตุการณ์เช่นนี้หรือไม่ครับ
คำว่า
'Other ใน Code ที่ผมตอบไปคือ Code เดิมที่มีอยู่แล้ว มีอยู่อย่างไรก็เก็บไว้อย่างนั้นไม่ใช่ลบทิ้งไป การตอบปัญหาผมจะเน้นในส่วนที่ต้องปรับปรุง ส่วนที่ไม่ได้ปรับปรุงใด ๆ จะเขียนว่า
'Other ครับ
ขออนุญาตสอบถามอีกเรื่องนะคะ ถ้ารันตัวโปรแกรมแล้วเครื่องค้างอย่างนี้เกี่ยวกับการเขียน code ด้วยไหมคะ
Re: ขอคำแนะนำวิธีแก้ Debug VBA
Posted: Sat Aug 27, 2022 1:42 pm
by snasui

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

หากใช้งานปกติแล้วไม่มีปัญหา พอรันโปรแกรมแล้วค้างก็สามารถสันนิษฐานได้ว่าเกี่ยวกับ Code ที่รันครับ
แล้วอย่างนี้สามารถแก้ได้อย่างไรหรอคะเราสามารถแก้ที่ code ได้เลยไหมคะ หรือว่าต้องแก้ที่ตัวเครื่องคะ
Re: ขอคำแนะนำวิธีแก้ Debug VBA
Posted: Sat Aug 27, 2022 2:09 pm
by snasui

เป็นที่ Code ก็ต้องแก้ที่ Code ครับ
Re: ขอคำแนะนำวิธีแก้ Debug VBA
Posted: Sat Aug 27, 2022 7:07 pm
by xtikx
snasui wrote: Sat Aug 27, 2022 2:09 pm

เป็นที่ Code ก็ต้องแก้ที่ Code ครับ
รบกวนช่วยอธิบายวิธีแก้ได้ไหมคะ พอดียังไม่ค่อยเข้าใจการแก้ code เท่าไหร่เลยค่ะ
ขอบพระคุณมาก ๆ ค่ะ

Re: ขอคำแนะนำวิธีแก้ Debug VBA
Posted: Sat Aug 27, 2022 7:31 pm
by snasui

จะบอกวิธีแก้ได้ก็ต่อเมื่อทราบว่าเกิดปัญหาตรงไหน เขียน Code ไว้อย่างไรเสียก่อนหรืออย่างน้อยก็ต้องทราบเบื้องต้นว่าเกิดปัญหาลักษณะไหน จึงจะพอบอกให้ไปดูส่วนที่เขียนแล้วอาจจะเกิดปัญหาเช่นนั้น ซึ่งผู้ถามจะต้องมีความรู้ความชำนาญในการติดตามแก้ไขปัญหา (Debug) พอสมควรครับ
แค่บอกภาพรวมว่าเครื่องค้างโดยที่ไม่รู้ว่าเขียน Code ไว้อย่างไรนั้นไม่มีใครตอบให้ได้ตรงประเด็นครับ