Page 1 of 1

แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 2:19 pm
by yangkodza
Capture.GIF

Code: Select all

Sub ดึงข้อมูล()
'
' เปลี่ยนห้อง แมโคร

 CurrDir = Application.ActiveWorkbook.Path
    ClassRoom = InputBox("ตัวอย่าง ห้องเรียน ป.1/1 พิมพ์ 1-1")
    'ClassRoom = o6
    Range("b3").Select

    ActiveCell.FormulaR1C1 = "='" & CurrDir & "\[คะแนนประถมเทอม1xlsx]ป." & ClassRoom & "'!R3c2:r52C18"
    Range("b3").Select
    Selection.AutoFill Destination:=Range("b3:R3"), Type:=xlFillDefault
    Range("b3:R3").Select
    Selection.AutoFill Destination:=Range("b3:R52")
    Range("b3:R52").Select
    Range("b3").Select
End Sub
ดึงข้อมูลแล้วงานไม่ยอมมาครับไม่ทราบว่าผิดตรงไหนครับ งงมาก
เพราะว่าผมเทียบกับงานเก่าที่เคยทำแล้วไล่ Code เอาครับ
คะแนนประถมเทอม1.xlsx
ตัวดึงข้อมูล.xlsm

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 2:27 pm
by snasui
:lol: ช่วยแจ้งมาอย่างละเอียดว่าไฟล์อยู่ใน Path ไหนครับ

Current Drive หมายถึง Drive ปัจจุบันที่กำลังทำงาน

ปัจจุบันไฟล์วางอยู่ที่ Paht ไหน ให้เขียนเข้าไปตรง ๆ แทนที่จะใช้ CurrDir เพราะอาจจะผิดพลาด อ้างไม่ตรงกับที่เก็บไฟล์จริงได้ครับ

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 2:37 pm
by yangkodza
snasui wrote::lol: ช่วยแจ้งมาอย่างละเอียดว่าไฟล์อยู่ใน Path ไหนครับ

Current Drive หมายถึง Drive ปัจจุบันที่กำลังทำงาน

ปัจจุบันไฟล์วางอยู่ที่ Paht ไหน ให้เขียนเข้าไปตรง ๆ แทนที่จะใช้ CurrDir เพราะอาจจะผิดพลาด อ้างไม่ตรงกับที่เก็บไฟล์จริงได้ครับ
ไฟล์ทั้ง 2 ไฟล์ อยู่ในโฟลเดอร์เดียวกันครับผม :shock:

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 2:43 pm
by snasui
:D สังเกตว่าชื่อไฟล์ใน Code ผิดพลาดอยู่ครับ ไม่มี . (จุด)

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 3:40 pm
by yangkodza
snasui wrote::D สังเกตว่าชื่อไฟล์ใน Code ผิดพลาดอยู่ครับ ไม่มี . (จุด)
อาจารย์ครับ ใส่จุดแล้วครับยังไม่ยอมออก
ฟ้องชื่อไฟล์ผิดทั้งๆที่ เราเปลี่ยนชื่อแล้ว งงครับ ดังภาพ

ไฟล์งานอยู่บนหน้าจอ ในโฟลเดอร์ Test ครับ
Capture.GIF

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 3:51 pm
by snasui
:D ผมลองทดสอบ Code แล้วโดยไฟล์อยู่ใน Folder เดียวกัน ไม่พบกว่าติดปัญหาใดครับ

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 4:48 pm
by yangkodza
snasui wrote::D ผมลองทดสอบ Code แล้วโดยไฟล์อยู่ใน Folder เดียวกัน ไม่พบกว่าติดปัญหาใดครับ
ขอบคุณมากครับ
พอดีออกไปธุระเลยปิดคอม
กลับมาเปิดงานได้ปกติ งงเลยครับ

ตอนนี้ผมทำรวม 2 อย่างเข้าด้วยกัน
โดยดึงงานมาจาก 2 ไฟล์
แต่ติดปัญหาที่ บางครั้งไม่แสดง ผมอ้างจากการเปลี่ยนห้อง แล้วไปใช้ตัวแปรเดียวกันกับดึงคะแนนด้วย
ดังสูตรนี้ครับ

Code: Select all

Sub เปลี่ยนห้อง()
' เปลี่ยนห้อง แมโคร
 CurrDir = Application.ActiveWorkbook.Path
    ClassRoom = InputBox("ตัวอย่าง ห้องเรียน ป.1/1 พิมพ์ 1-1")
    Range("b3").Select
    ActiveCell.FormulaR1C1 = "='" & CurrDir & "\[รายชื่อประถม.xlsx]ป." & ClassRoom & "'!R3c2:r52C5"
    Range("b3").Select
    Selection.AutoFill Destination:=Range("b3:E3"), Type:=xlFillDefault
    Range("b3:E3").Select
    Selection.AutoFill Destination:=Range("b3:E52")
    Range("b3:E52").Select
    Range("b3").Select
    ' ดึงคะแนน
           Sheets("คะแนนเทอม1").Select
          ActiveCell.FormulaR1C1 = "='" & CurrDir & "\[คะแนนประถมเทอม1.xlsx]ป." & ClassRoom & "'!R2c1:r52C18"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:R2"), Type:=xlFillDefault
    Range("A2:R2").Select
    Selection.AutoFill Destination:=Range("A2:R52")
    Range("A2:R52").Select
    Range("A2").Select
           'Call Module14.คะแนน
              '  Sheets("รวม 12 วิชา").Select
              '  ActiveSheet.Protect DrawingObjects:=Flase, Contents:=True, Scenarios:=Flase, Password:="2500"
           '     Sheets("รายชื่อนักเรียน").Select
End Sub
รบกวนอาจารย์ช่วยปรับสูตรให้หน่อยครับ

และอีกอย่าง คะแนนเทอม1 ชอบมี Error แปลกๆ
ดังภาพ
ในภาพแจ้ง Error ที่ U10,T15 ครับ
กดเปลี่ยนห้องครั้งนึงก็จะ Error ทีนึงครับ
Capture.GIF

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 5:52 pm
by snasui
:D แนบตัวอย่างไฟล์ที่เกี่ยวข้องทั้งหมดมาด้วยครับ

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 6:26 pm
by yangkodza
snasui wrote::D แนบตัวอย่างไฟล์ที่เกี่ยวข้องทั้งหมดมาด้วยครับ
ได้ครับ ผมตัดส่วนไม่จำเป็นออกหมดแล้วครับ

ตัวรันคือ 01 ครูประจำชั้นT2
จากการสังเกตุ ถ้าชีต คะแนนเทอม1 ยังไม่มีข้อมูลมา
เวลาสั่งเปลี่ยนห้องครั้งแรกจะยังเปลี่ยนไม่ได้ ต้องเปลี่ยน 2 ครั้งครับ
การขึ้น Error จะขึ้น บางครั้ง ครับแปลกๆ
ในที่นี้ผมมี ป.1 4 ห้อง ครั้ง
Tset.rar

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 7:22 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub เปลี่ยนห้อง()
    ' เปลี่ยนห้อง แมโคร
    CurrDir = Application.ActiveWorkbook.Path
    ClassRoom = InputBox("ตัวอย่าง ห้องเรียน ป.1/1 พิมพ์ 1-1")
    Range("b3").FormulaR1C1 = "='" & CurrDir & "\[รายชื่อประถม.xlsx]ป." & ClassRoom & "'!R3c2:r52C5"
    
    Range("b3").AutoFill Destination:=Range("b3:E3"), Type:=xlFillDefault
    Range("b3:E3").AutoFill Destination:=Range("b3:E52")
    
    ' ดึงคะแนน
    Sheets("คะแนนเทอม1").Select
    Range("a2").FormulaR1C1 = "='" & CurrDir & "\[คะแนนประถมเทอม1.xlsx]ป." & ClassRoom & "'!R2c1:r52C18"
    
    Range("a2").AutoFill Destination:=Range("A2:R2"), Type:=xlFillDefault
    Range("A2:R2").AutoFill Destination:=Range("A2:R52")
End Sub

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 7:33 pm
by yangkodza
snasui wrote::D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub เปลี่ยนห้อง()
    ' เปลี่ยนห้อง แมโคร
    CurrDir = Application.ActiveWorkbook.Path
    ClassRoom = InputBox("ตัวอย่าง ห้องเรียน ป.1/1 พิมพ์ 1-1")
    Range("b3").FormulaR1C1 = "='" & CurrDir & "\[รายชื่อประถม.xlsx]ป." & ClassRoom & "'!R3c2:r52C5"
    
    Range("b3").AutoFill Destination:=Range("b3:E3"), Type:=xlFillDefault
    Range("b3:E3").AutoFill Destination:=Range("b3:E52")
    
    ' ดึงคะแนน
    Sheets("คะแนนเทอม1").Select
    Range("a2").FormulaR1C1 = "='" & CurrDir & "\[คะแนนประถมเทอม1.xlsx]ป." & ClassRoom & "'!R2c1:r52C18"
    
    Range("a2").AutoFill Destination:=Range("A2:R2"), Type:=xlFillDefault
    Range("A2:R2").AutoFill Destination:=Range("A2:R52")
End Sub
ผ่านแล้วครับ
รบกวนอาจารย์ช่วยอธิบายทีว่าเป็นที่อะไรของผมถึงไม่ผ่านครับ :D

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 7:54 pm
by snasui
:D เกิดจากการเลือก (Select) เซลล์ไม่เป็นไปตามลำดับ ทำให้โปรแกรมทำงานไม่ถูกต้องครับ

Re: แปลกใจทำไมดึงข้อมูลไม่ยอมมาจากอีกไฟล์

Posted: Sun Nov 20, 2016 8:07 pm
by yangkodza
snasui wrote::D เกิดจากการเลือก (Select) เซลล์ไม่เป็นไปตามลำดับ ทำให้โปรแกรมทำงานไม่ถูกต้องครับ
เข้าใจแล้วครับ ขอบคุณมากๆครับ :D