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

หรือสามารถจะ Copy code ด้านล่างไปใช้ได้เลยครับ
Code: Select all
Format(Time(), "hhmmss") & Sheets("QPM_DFD").Range("F2").Value & ".txt"
snasui wrote:
ก่อนบรรทัด 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 ในขณะนั้น