Page 1 of 1

ขอความช่วยเหลือ Code VB ดัก Erorr ครับ

Posted: Tue May 17, 2016 10:13 pm
by tigerwit
ต้องการคัดลอกข้อมูลจากอีกไฟล์หนึ่งมาใส่ไว้ในอีกไฟล์หนึ่ง
ไฟล์ต้นทางที่คัดลอกชื่อ Name2559.xls
ไฟล์ปลายทางที่นำข้อมูลมาวางชื่อ pp5-edit.xlsm
ตอนนี้โค๊ดที่เขียนสามารถรันได้ปกติต่อเมื่อได้เปิดไฟล์ Name2559.xls ขึ้นมารอไว้
แต่หากไม่ได้เปิดไฟล์ Name2559.xls ไว้ ก็จะมีปัญหาการรันโค๊ด

ขอความช่วยเหลือในการแก้ไขดังนี้
หากไม่ได้เปิดไฟล์ Name2559.xls ไว้ ให้โปรแกรมแจ้งว่าต้องเปิดไฟล์ Name2559.xls ขึ้นมาก่อน

Code: Select all

Sub Im_Stu()
    If MsgBox("กรุณาเปิดไฟล์ Name2559.xls เพื่อนำเข้าข้อมูล", 1, "ยืนยันการนำเข้าข้อมูล") = 1 Then
            Windows("Name2559.xls").Activate
            Range("B2:G1500").Select
            Selection.Copy
            Windows("PP5-Edit.xlsm").Activate
            Range("B3").Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
           MsgBox "นำเข้าข้อมูลเรียบร้อยแล้ว"
            Range("B3").Select
        End If
End Sub

Re: ขอความช่วยเหลือ Code VB ดัก Erorr ครับ

Posted: Wed May 18, 2016 9:47 am
by niwat2811

Code: Select all

Sub Im_Stu()
Dim WB As Workbook
On Error Resume Next
Set WB = Workbooks("Name2559.xls")
If WB Is Nothing Then
    MsgBox "ไฟล์ Name2559.xls ยังไม่ได้เปิด กรุณาเปิดไฟล์ก่อน", vbCritical, "กรุณาเปิดไฟล์"
    Set WB = Nothing
    On Error GoTo 0
Else
    MsgBox ("ยืนยันการนำเข้าข้อมูล")
    Windows("Name2559.xls").Activate
    Range("B2:G1500").Select
    Selection.Copy
    Windows("PP5-Edit.xlsm").Activate
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    MsgBox "นำเข้าเรียบร้อยแล้ว"
    Range("B3").Select
    Set WB = Nothing
    On Error GoTo 0
End If
End Sub
ลองแบบนี้ดูว่าใช้ได้ตามต้องการไหมครับ

Re: ขอความช่วยเหลือ Code VB ดัก Erorr ครับ

Posted: Wed May 18, 2016 10:21 am
by tigerwit
ตามต้องการครับ
ขอบพระคุณอย่างสูงครับ