Page 1 of 1

เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

Posted: Thu Jun 04, 2020 9:25 am
by yodpao.b
เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

ปกติลองไม่พิมพ์ชื่อคน code ทำงานได้ปกติ
แต่พอลองพิมพ์ชื่อคน code ทำงานช้ามาก และถ้ายังเล่นต่อไปอีกรอบ จะพิมพ์ชื่อคน
หรือไม่พิมพ์โปรแกรมก็ทำงานช้าครับ

ต้องปิดไฟล์แล้วเปิดใหม่

รอบแรก ลอง run ดู โดยไม่พิมพ์ชื่อคน ทำงานปกติครับ
รอบสองลอง run ดู โดยไม่พิมพ์ชื่อคน ทำงานปกติครับ
รอบสามลอง run ดู โดย พิมพ์ชื่อคนและอื่นๆ ทำงานช้ามากครับ

ขั้นตอนการ run code
0.JPG
0.JPG (23.16 KiB) Viewed 69 times
คลิกปุ่มที่วงกลม
1.JPG
1.JPG (93.13 KiB) Viewed 69 times
จากนั้น
เลือกใน listbox ที่ข้อความว่า เบิกใช้งาน
คลิกปุ่มพิมพ์ใบยืม
2.JPG
2.JPG (39.85 KiB) Viewed 69 times
หลังจากนั้นจะแสดงหน้าเอกสาร
เลือกสถานะใน list ตามรูป จากนั้นคลิกปุ่มบันทึกครับ


มีต่อ add ไม่ได้ครับ

Re: เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

Posted: Thu Jun 04, 2020 9:27 am
by yodpao.b
ทำแบบเดิมอีกรอบ
3.JPG
3.JPG (37.74 KiB) Viewed 68 times
แต่คราวนี้ให้พิมพ์อะไรก็ได้ในวงกลม 4 วงกลม
แล้วคลิกบันทึก จะเห็นว่าเครื่องทำงานช้ากว่าเดิม ครับ

ต้องแก้ไขอย่างไรครับ

Re: เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

Posted: Thu Jun 04, 2020 9:30 am
by yodpao.b
ไฟล์แนบครับ
ขอโทษครับผมลองลบส่วนที่ไม่เกี่ยวข้องออกไป
เครื่องมันไม่ยอมให้ SAVE ครับ มันบอกให้ SAVE เปลี่ยนชื่อ
เปลี่ยนแล้วก็ไม่ยอม เลยต้องส่งทั้งไฟล์เลยครับ

รบกวนด้วยครับ

Re: เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

Posted: Fri Jun 05, 2020 2:04 am
by yodpao.b
เจอปัญหาแล้วครับ
เกี่ยวกับ .Select
อยู่ใน ฟอร์ม frmOrther

Code: Select all

Private Sub UserForm_Initialize()
Dim j As Integer

    Sheets("name").Select
    Range("E9").Select
        Do While Not IsEmpty(ActiveCell.Value)
            ComboBox1.AddItem ActiveCell.Value
            ActiveCell.Offset(1, 0).Select
        Loop

    Call ResetFormOrther1
    Me.Image2.Picture = LoadPicture("D:\Store\image\images1.jpg")
    Sheets("Home").Select
    
End Sub
แก้โดยการเอา code ออก
Sheets("name").Select
Range("E9").Select
Do While Not IsEmpty(ActiveCell.Value)
ComboBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
code อีกอันก็ผิด

Code: Select all

Sub ShowForm_Orther()
Application.ScreenUpdating = False
    Call UnProtectAllSheets

    Sheets("name").Select
    Range("E8").Select
    Sheets("name").PivotTables("PivotTable1").PivotCache.Refresh

    Call Macro_ClearDataOrther
    Call Macro_TextDataOrther1

    frmOrther.Show
Application.ScreenUpdating = True
End Sub
แก้โดยการนำ codeด้านล่าง ออก
Sheets("name").Select
Range("E8").Select
ตอนนี้ โปรแกรมเป็นปกติแล้วครับ

Re: เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

Posted: Sat Jun 06, 2020 2:12 pm
by yodpao.b
คำถามนี้ไม่เกียวกับคำถามที่ผ่านมาเพราะโพสต์นี้ผมแก้ให้ทำงานเป็นปกติแล้ว

เรียนอาจารย์ครับ
รบกวนอาจารย์ ลองเปิดไฟล์นี้หน่อยครับ(ไฟล์อยู่ในโพสต์ที่ผ่านครับ)
เมื่อวานไปประชุมที่ทำงาน ลองเปิดไฟล์ดู(ใช้คอมที่ทำงาน)
เปิดไฟล์มาคลิกหัวข้อเรียกฟอร์มอะไรก็ได้
ผลคือ เครื่องคอม แฮง ค้างทำอะไรไม่ได้นานมาก เลยกดสวิสต์ปิดเปิดใหม่
แล้วลองอีกรอบ ผลเป็นเหมือนเดิม

รบกวนอาจารย์ ช่วยลองหน่อยครับ
ผมละท้อเลย
ไม่รู้ว่าต้องไปเริ่มต้นเขียนใหม่ในคอมรีเปล่าครับ

ขอบคุณครับ

Re: เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ

Posted: Sat Jun 06, 2020 2:19 pm
by snasui
:D ผมเปิดไฟล์ได้เป็นปกติแต่เมื่อเปิด Form จะ Error

ที่ Error เพราะว่าได้เขียนให้นำไฟล์ภาพในเครื่องมาใช้ เช่น Me.Image2.Picture = LoadPicture("D:\Store\image\images1.jpg")

การเขียน Code ลักษณะนี้ได้จะต้องมั่นใจว่าในเครื่องใด ๆ ที่เปิดไฟล์นี้ จะต้องมีไฟล์ภาพในตำแหน่งนี้เสมอ ไม่เช่นนั้นก็จะ Error ครับ