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 (23.16 KiB) Viewed 76 times
คลิกปุ่มที่วงกลม

- 1.JPG (93.13 KiB) Viewed 76 times
จากนั้น
เลือกใน listbox ที่ข้อความว่า เบิกใช้งาน
คลิกปุ่มพิมพ์ใบยืม

- 2.JPG (39.85 KiB) Viewed 76 times
หลังจากนั้นจะแสดงหน้าเอกสาร
เลือกสถานะใน list ตามรูป จากนั้นคลิกปุ่มบันทึกครับ
มีต่อ add ไม่ได้ครับ
Re: เมื่อพิมพ์ชื่อคน code vba ทำงานช้ากว่าปกตืครับ
Posted: Thu Jun 04, 2020 9:27 am
by yodpao.b
ทำแบบเดิมอีกรอบ

- 3.JPG (37.74 KiB) Viewed 75 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

ผมเปิดไฟล์ได้เป็นปกติแต่เมื่อเปิด Form จะ Error
ที่ Error เพราะว่าได้เขียนให้นำไฟล์ภาพในเครื่องมาใช้ เช่น
Me.Image2.Picture = LoadPicture("D:\Store\image\images1.jpg")
การเขียน Code ลักษณะนี้ได้จะต้องมั่นใจว่าในเครื่องใด ๆ ที่เปิดไฟล์นี้ จะต้องมีไฟล์ภาพในตำแหน่งนี้เสมอ ไม่เช่นนั้นก็จะ Error ครับ