:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

code มีปัญหาครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

code มีปัญหาครับ

#1

Post by yodpao.b »

Code: Select all

Sub MacroSaveAs_Filename()
''''''''''''''''''''''''''
    Dim i, jcount As Integer
    i = 6
    jcount = 0
    Do While Sheet1.Cells(i, 1).Value <> ""
        i = i + 1
        jcount = jcount + 1
    Loop
    Sheet1.Cells(2, 4) = jcount
''''''''''''''''''''''''''''''''''''
    'SAVE ชื่อ และ ตั้งชื่อ Folder ตาม Excel
    Dim xlsName, folderName, path, Co_name As String
    path = Application.ActiveWorkbook.path
'    xlsName = Sheets("Sheet1").Range("B6")
    xlsName = Sheet1.Cells(i - 1, 2).Text
'    folderName = Sheets("Sheet1").Range("B6")
    folderName = Sheet1.Cells(i - 1, 2).Text
'    Co_name = Sheets("Sheet1").Range("C6")
    Co_name = Sheet1.Cells(i - 1, 3).Text
    MkDir path & "\" & folderName                                                               'สร้าง Folder ชื่อ folderName ใน path
    
[background=]    Workbooks.Open Filename:=path & "\EX_book.xlsm"[/background]
'    Application.Run "path & " \ " & folderName & " \ " & xlsName & .xlsm!Sheet1.test", pathf = path
'    Application.Run "path & " \ " & folderName & " \ " & xlsName & .xlsm!Sheet1.test", folder = folderName
    ActiveWorkbook.Sheets("Log").Range("A1").Value = Co_name
    ActiveWorkbook.SaveAs Filename:=path & "\" & folderName & "\" & xlsName & ".xlsm", FileFormat:=52
    ActiveWorkbook.Close
    Call Shell("explorer.exe" & " " & path & "\" & folderName, vbNormalFocus)
    
    Workbooks.Open Filename:=path & "\First_Form.xlsm"
    ActiveWorkbook.SaveAs Filename:=path & "\" & folderName & "\" & xlsName & " First Form.xlsm", FileFormat:=52
    MsgBox "Please print this form and bring it to your first time audit"
End Sub
code ด้านล่าง บัคครับ อยู่ในแถบสีครับ

Code: Select all

Workbooks.Open Filename:=path & "\EX_book.xlsm"
ความหมายของ code คือ สั่งให้สร้างไฟล์และfolder โดยให้ตั้งชื่อไฟล์และfolder ตามเซลใน EXcel
คำถาม
เครื่องผม excel 2013 แต่เครื่องอื่น excel 2007
พอเปิดไฟล์ ขึ้นดังภาพด้านล่าง
rtys.PNG
rtys.PNG (23.91 KiB) Viewed 132 times
คลิก ok ไฟล์เปิด พอ Run code ก็ดีบัคตามด้านบนครับ

จำเป็นต้องส่งไฟล์ไหมครับ
มันใช้ 3 ไฟล์ครับ
ถ้าต้องการก็บอกได้ครับ
code ที่เห็นน้องที่ทำงานเขียนครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#2

Post by yodpao.b »

ขอโทษครับ ลืมบอก excel 2013 ใช้ได้ครับ แต่ 2007 ใช้ไม่ได้ครับ
พอจะแก้ไขให้ 2007 อ่านโคดได้ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31214
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: code มีปัญหาครับ

#3

Post by snasui »

:o ผมไม่มี 2007 ให้ทดสอบและ Debug ครับ :sg:
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#4

Post by yodpao.b »

เรียนอาจารย์ครับ
เริ่มใหม่นะครับ
ผมมีไฟล์ชุดหนึ่ง Run Excel 2010 และ 2013 ได้ครับ

จุดประสงค์คือต้องการ Run ที่ excel 97 , 2003 ,2010,2013

ในตอนนี้จึงทำขึันมาอีก 1 ชุด คือ Run ที่ excel 97 , 2003

ขั้นตอนการทำจากไฟล์ที่ใช้ Excel 2010 เป็น excel 97 , 2003
1.เปิดไฟล์ที่ใช้ Excel 2010
- ไฟล์ CreateNewProject
- ไฟล์ EX_book
- ไฟล์ First_Form
2.Save ทั้ง 3 ไฟล์ให้เป็น excel 97-2003
1.PNG
1.PNG (17.49 KiB) Viewed 112 times
3.แก้ code ในไฟล CreateNewProject ในส่วนของ โมดูลให้เป็น xls
จบขั้นตอน
ปัญหา
ที่นี้ลองนำไฟล์ที่ Save ใหม่ไปเปิดใน excel 2003 เปิดได้ ทำงานได้
ต่อจากนั้นนำไฟล์ชุด excel 2003 ไป Run ที่ excel 2010 ไม่สามารถ Run Code ได้
คำถาม
ช่วยแก้ code ในไฟล์ CreateNewProject ที่ใช้กับ excel 2003 ให้ Run excel 2010 ได้ไหมครับ
ขอบคุณครับ
ผมได้แนบไฟล์ขั้นตอนการทำงานและผลที่ได้มาให้ครับ
การทำงานของไฟล์
2.PNG
2.PNG (43.63 KiB) Viewed 112 times
3.PNG
3.PNG (73.69 KiB) Viewed 112 times
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#5

Post by yodpao.b »

ผมได้แนบไฟล์ขั้นตอนการทำงานและผลที่ได้มาให้ครับ
Attachments
ขั้นตอนและผลที่ได้.xlsx
(98.66 KiB) Downloaded 1 time
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#6

Post by yodpao.b »

ผมได้แนบไฟล์ชุดที่ใช้ใน excel 2003 ครับ
Attachments
CreateNewProject.xls
(59 KiB) Downloaded 6 times
EX_book.xls
(24 KiB) Downloaded 2 times
First_Form.xls
(33.5 KiB) Downloaded 2 times
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#7

Post by yodpao.b »

ผมได้แนบไฟล์ชุดที่ใช้ใน excel 2010 ครับ
Attachments
CreateNewProject.xlsm
(32.3 KiB) Downloaded 2 times
EX_book.xlsm
(8.36 KiB) Downloaded 1 time
First_Form.xlsm
(12.32 KiB) Downloaded 2 times
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#8

Post by yodpao.b »

ช่วยดูให้ด้วยครับ
ขอบคุณครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#9

Post by yodpao.b »

แนะนำเพิ่มเติม
อาจารย์เปิดไฟล์ใน ชุด excel 2010 จะทำงานได้ตามปกติครับ
แต่นำไฟล์ ใน ชุด excel 2003 จะ eeror ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31214
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: code มีปัญหาครับ

#10

Post by snasui »

:D จาก FileFormat:=52

จำเป็นต้องเปลี่ยน FileFormat ให้ตรงกับรุ่น Excel ที่ใช้ครับ

ดูเลขรุ่นได้ที่ https://www.rondebruin.nl/win/s5/win001.htm
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#11

Post by yodpao.b »

ขอโทษครับ ไฟล์ Exbook ที่ส่งอาจารย์ ด้านในไม่มี code อะไรเลย
พอผมนำไฟล์ทั้ง 3 ไป run ที่ทำงาน ทำงานได้เป็นปกติ ไฟล์Exbook เรียกได้

จึงสรุปได้ว่าไฟล์ Exbook ของเดิมที่มี code ไฟล์เสีย

แก้ไขโดยการ move ทั้ง ชีท และ form ไปที่ไฟล์ใหม่ ทำการ Saveไฟล์ใหม่

ขอบคุณครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#12

Post by yodpao.b »

ขอเริ่มต้นใหม่นะครับ

ผมมีไฟล์หนึ่งชื่อ EX_book โดยมีอีกหนึ่งไฟล์ชื่อ CreateNewProject เป็นตัว สั่ง เปิด, Saveเปลี่ยนชื่อ และ ปิด

ไฟล์ทั้ง 2 อยู่ใน เซฟเวอร์
ปัญหา
เมื่อคนที่หนึ่งเข้าไปแก้ไข EX_book โดยใช้ไฟล์ชื่อ CreateNewProject เป็นตัว สั่ง เปิด โดยใช้ excel เวอร์ชั้น 2013 แล้ว Save ทุกอย่างทำงานได้ตามปกติ

แต่พออีกคนหนึ่งนำไฟล์ EX_book มาทำต่อ โดยใช้ไฟล์ชื่อ CreateNewProject เป็นตัว สั่ง เปิด เกิดปัญหา โดยใช้ excel เวอร์ชั้น 2007
เกิดปัญหาบัค

Code: Select all

Workbooks.Open Filename:=path & "\EX_book.xlsm"
ที่โคดนี้ครับ

ขั้นตอนการเกิดบัคดังนี้
1.เปิดไฟล์ CreateNewProject แล้วคลิก ใช่
1.JPG
1.JPG (17.38 KiB) Viewed 84 times
2.ทำตามหมายเลข 1
2.JPG
2.JPG (26.31 KiB) Viewed 84 times
3.ทำตามหมายเลข 5 6 7 ตามรูป
3.JPG
3.JPG (25.64 KiB) Viewed 84 times
และจะเห็น บัค ที่เกิดขึ้นครับ

ข้อสงสัยเมื่อ Save ไฟล์ชื่อ EX_book โดยใช้ excel เวอร์ชั้น 2007
แล้วจึงทำตามขั้นตอนการเกิดบัค(ด้านบน)
จะพบว่าสามารถทำงานได้ตามปกติ
ปัญหาคือคนบางคนอาจใช้เครื่อง excel เวอร์ชั้น 2017 ใช้งาน SAVE
พอ กลับมาใช้ excel เวอร์ชั้น 2007 โดยใช้ไฟล์ชื่อ CreateNewProject เป็นตัวสั่งให้ทำงาน
ผลจะกลับมา บัคเมื่อเดิมครับ

สรุปจะเกิด บัค เมื่อ แก้ไขไฟล EX_book ใน excel เวอร์ชั้น 2017 แล้ว SAVE
แล้วนำไฟล EX_book มาเปิดโดยใช้ฟล์ชื่อ CreateNewProject เป็นตัวสั่งให้ทำงานใน excel เวอร์ชั้น 2007 ครับ

ไฟล์ที่ใช้งาน 3 ไฟล์ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#13

Post by yodpao.b »

ไฟล์แนบ
สั่งมาพร้อมกันไม่ได้ครับ
ไฟล์ที่ใช้งาน 3 ไฟล์ครับ
Attachments
CreateNewProject.xlsm
(35.8 KiB) Downloaded 3 times
EX_book.xlsm
(357.54 KiB) Downloaded 1 time
First_Form.xlsm
(12.13 KiB) Downloaded 3 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31214
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: code มีปัญหาครับ

#14

Post by snasui »

:D เบื้องต้น แก้ไขตัวแปรที่ตั้งชื่อว่า path ในทุกตำแหน่งให้เป็นชื่ออื่นอย่าให้ไปซ้ำกับ Property ของโปรแกรม

สังเกตเมื่อ Assign ค่าให้กับตัวแปร path ด้วย path = Application.ActiveWorkbook.path ทำให้ .path ที่เป็น Property ของ ActiveWorkbook กลายเป็นอักษรตัวเล็กไปด้วย ที่ถูกจะต้องเป็น .Path ครับ

ผมไม่มี Excel 2007 ให้ทดสอบ หากยังติดปัญหาคงต้องผู้ที่มี Excel 2007 ช่วย Debug ให้ครับ :mrgreen:
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#15

Post by yodpao.b »

เรียนอาจารย์ครับ แก้ code ตามที่บอก แต่ .Path พิมพ์เป็นตัวใหญ่แล้วครับ
แต่มันเด้งเป็นตัวเล็กเองครับ .path

แก้ไขตัวแปรที่ตั้งชื่อว่า path เป็น folderco แล้วครับ ดังนี้

Code: Select all

Public Sub MacroSaveAs_Filename()
''''''''''''''''''''''''''
    Dim i, jcount As Integer
    i = 6
    jcount = 0
    Do While Sheet1.Cells(i, 1).Value <> ""
        i = i + 1
        jcount = jcount + 1
    Loop
    Sheet1.Cells(2, 4) = jcount
''''''''''''''''''''''''''''''''''''
    'SAVE ª×èÍ áÅÐ µÑ駪×èÍ Folder µÒÁ Excel
    Dim xlsName, folderName, folderco, Co_name, in_charge As String
    folderco = Application.ActiveWorkbook.path
'    xlsName = Sheets("Sheet1").Range("B6")
    xlsName = Sheet1.Cells(i - 1, 2).Text
'    folderName = Sheets("Sheet1").Range("B6")
    folderName = Sheet1.Cells(i - 1, 2).Text
'    Co_name = Sheets("Sheet1").Range("C6")
    Co_name = Sheet1.Cells(i - 1, 3).Text
    in_charge = Sheet1.Cells(i - 1, 4).Text
    MkDir folderco & "\" & folderName                                                               'ÊÃéÒ§ Folder ª×èÍ folderName ã¹ folderco
    
    Workbooks.Open Filename:=folderco & "\EX_book.xlsm"
    
'    Application.Run "path & " \ " & folderName & " \ " & xlsName & .xlsm!Sheet1.test", pathf = path
'    Application.Run "path & " \ " & folderName & " \ " & xlsName & .xlsm!Sheet1.test", folder = folderName
    ActiveWorkbook.Sheets("Log").Range("A1").Value = Co_name
    ActiveWorkbook.Sheets("Log").Range("N19").Value = in_charge
    ActiveWorkbook.SaveAs Filename:=folderco & "\" & folderName & "\" & xlsName & ".xlsm", FileFormat:=52
    ActiveWorkbook.Close
    Call Shell("explorer.exe" & " " & folderco & "\" & folderName, vbNormalFocus)
    
    Workbooks.Open Filename:=folderco & "\First_Form.xlsm"
    ActiveWorkbook.SaveAs Filename:=folderco & "\" & folderName & "\" & xlsName & " First Form.xlsm", FileFormat:=52
    MsgBox "Please print this form and bring it to your first time audit"
End Sub
ถูกต้องไหมครับ ติดปัญหา .path มันไม่เป็นตัวใหญ่ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31214
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: code มีปัญหาครับ

#16

Post by snasui »

:D เมื่อยังไม่เป็นตัวใหญ่ผมถือว่ายังเป็นปัญหาอยู่ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: code มีปัญหาครับ

#17

Post by yodpao.b »

โพสต์ นี้ ยอมแพ้ครับ
และอาจารย์ก็ไม่มี excel 2007
ผมมีวิธีแก้ไขในใจอยู่ 2 แบบแล้วครับ
แบบที่ 1
คือ SAVE ไฟล EX_book ให้นามสกุลให้เป็น excel 2003 (.xls)
แก้ code
Workbooks.Open Filename:=path & "\EX_book.xlsm"
เป็น
Workbooks.Open Filename:=path & "\EX_book.xls"
แต่แบบนี้น้องที่ทำงานบอกว่าไม่ชอบเพราะว่า คุณสมบัติบางประการจะใช้ไม่ได้
ควรลีกเลี่ยง

แบบที่ 2 ไม่ให้ Save ทับชื่อ EX_book.xlsm
โดยรายละเอียดอยู่ใน โพสต์ "Excel : ไม่ต้องการให้ Save ทำอย่างไร"
https://www.snasui.com/viewtopic.php?f=3&t=14891
Post Reply