: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

สร้างชื่อไฟล์เป็นประเภทอื่น

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สร้างชื่อไฟล์เป็นประเภทอื่น

#21

Post by godman »

น่าจะเป็นช่วงนี้หรือปล่าวครับ เพราะว่า file MF มีจำนวนคอลัมพ์น้อยกว่า DFD
For ColumnCount = 1 To Selection.Columns.Count
' Write current cell's text to file with quotation marks.

'column number
If (ColumnCount >= 12) And (ColumnCount <= 103) Then
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สร้างชื่อไฟล์เป็นประเภทอื่น

#22

Post by snasui »

:lol: ผมขอลำดับความเข้าใจใหม่ เพื่อน ๆ ที่เข้ามาอ่านจะได้ไม่สับสน ปัญหาด้านล่างนี้
วันวานยังหวานอยู่ wrote:ขอบคุณครับ แต่พอผมไปเปิดใน Dirve D ที่เป็นปลายทาง ไฟล์ MF เหลือแค่นี้ครับ
SOF
# 65-949-8369
# TOLRINGCCP
"1","2",3
EOF

จริงๆ แล้วมันต้องเป็นแบบนี้อะครับ
SOF
# 65-949-8369
# TOLRINGCCP
"FILE_NAME","FILE_CREATION_DATE","NUMBER_OF_RECORDS"
"098533326_659498369_TOLRINGDFD_20120229162214123.txt","20120229162214123",5
EOF
เกิดจากอะไรหรือครับ
ไม่ได้เกิดจากการที่ผมตอบไปในความเห็นด้านล่างครับ ซึ่งเพิ่ม Code สำหรับเปลี่ยนชื่อไฟล์และรวมคำสั่งเพื่อคลิกทีเดียว
snasui wrote: :tt: ผม Copy ชื่อชีทมาวางซ้ำ ได้กลับไปแก้ใน Code ด้านบนให้แล้ว :roll: หรือสามารถจะ Copy code ด้านล่างไปใช้ได้เลยครับ

Code: Select all

Format(Time(), "hhmmss") & Sheets("QPM_DFD").Range("F2").Value & ".txt"
snasui wrote::D ก่อนบรรทัด End Sub ของ Button1_Click ให้ใส่ Button3_Click ซึ่งจะได้เป็น

Code: Select all

Sub Button1_Click()
   ...
   Button3_Click
End Sub
เครื่องหมาย ... คือ Code อื่น ๆ
ถ้าเป็นปัญหาก็เป็นปัญหาที่มีอยู่ก่อนแล้ว จะแยก Run หรือนำคำสั่งมารวมกันแล้ว Run ทีเดียวก็ได้ผลเหมือนกัน
วันวานยังหวานอยู่ wrote:ผมสังเกตเห็นว่า ชื่อไฟล์ มันเอาชื่อ 3 ตัวท้าย รหัสสินค้า 123 มาตั้งแทน ผมว่ามันต้องเกี่ยวกันนะครับ
ผม Run จากไฟล์ที่ส่งมาแรกสุดที่ยังไม่เพิ่ม Code ใด ๆ ก็ได้ผลเท่ากันครับ สรุปได้ว่าไม่เกี่ยวกับชื่อไฟล์
วันวานยังหวานอยู่ wrote:น่าจะเป็นช่วงนี้หรือปล่าวครับ เพราะว่า file MF มีจำนวนคอลัมพ์น้อยกว่า DFD
For ColumnCount = 1 To Selection.Columns.Count
' Write current cell's text to file with quotation marks.

'column number
If (ColumnCount >= 12) And (ColumnCount <= 103) Then
Code นี้เป็นส่วนหนึ่งของ Sub Button1_Click หลังจาก Run จะได้ไฟล์เช่น 098533326_659498369_TOLRINGDFD_25550329064834999.txt ส่วนที่เป็นปัญหาคือ Sub Button3_Click หลังจาก Click Run แล้วได้ไฟล์เช่น 098533326_659498369_TOLRINGMF_25550329065153968.txt ซึ่งมีเนื้อหาคือ
SOF
# 65-949-8369
# TOLRINGCCP
"1","2",3
EOF

ดังนั้นหากจะตรวจสอบความผิดพลาด ให้ตรวจที่ Sub Button3_Click ครับ ดูว่าเนื้อหาในไฟล์มีครบพร้อมที่จะนำไปเขียนในไฟล์ ไม่ได้ถูกลบออกไปก่อน หรือทำการ Run ทีละ Step แล้วสังเกตว่า กำหนดช่วงข้อมูลไม่ครบ หรือ Code ได้ข้ามบรรทัดไหนไปจึงไม่นำค่าที่มีในไฟลมาใช้บันทึกเข้าไปใน Text File

ซึ่งที่ผมตรวจสอบพบว่า ควรเปลี่ยน

Code: Select all

Sub Button3_Click()
'Range("A4" & LastRow).Select
'Range("A6").End(xlDown).Select
'Range("A4").End(xlRight).Select
  ActiveSheet.Range("c5", _
   ActiveSheet.Range("a4").End(xlDown).End(xlToLeft)).Select
....
เป็น

Code: Select all

Sub Button3_Click()
'Range("A4" & LastRow).Select
'Range("A6").End(xlDown).Select
'Range("A4").End(xlRight).Select
Sheets("QPM_MF").Select
  ActiveSheet.Range("c5", _
   ActiveSheet.Range("a4").End(xlDown).End(xlToLeft)).Select
...
เพื่อให้ Code หยิบเนื้อหามาใช้เขียนลง Text File ตามที่ต้องการ โดยเพิ่ม Sheets("QPM_MF").Select เข้าไปก่อน เนื่องจากเลือกใช้ Code ActiveSheet ซึ่งเป็นการทำงานกับชีทปัจจุบัน หากเราอยู่ที่ชีทอื่นแล้ว Run Sub Button3_Click จะทำให้ได้เนื้อหาของชีทอื่นมาแทนเนื่องจากเป็น ActiveSheet ในขณะนั้น
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: สร้างชื่อไฟล์เป็นประเภทอื่น

#23

Post by godman »

ขอบคุณมากครับ ผลการใช้งาน ได้ดีครับ
Post Reply