คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
เอาใหม่ ใช้คำสั่ง Line Input # ก็ได้
DIM arrayCut(3) as String
DIM cutV as String
...
Open "C:\Users\Acer\Desktop\Project\newsus\PM.csv" For Input As #1
Line Input #1, head
Line Input #1, arrayCut(0)
Line Input #1, arrayCut(1)
Line Input #1, arrayCut(2)
Line Input #1, cutV
Do While Not EOF(1)
... ตรงนี้คุณใส่ maxcount , fileCount เพื่อกำหนดชื่อ file สำหรับ output เอาเองนะครับ
Open "C:\Users\Acer\Desktop\Project\newsus\PM_" + Str(maxcount) + "_" + Str(Int(fileCount)) + ".csv" For Output As #2
Print #2, head
Print #2, arrayCut(0)
Print #2, arrayCut(1)
Print #2, arrayCut(2)
Close #2
... ตรงนี้คุณใส่ maxcount , fileCount เพื่อกำหนดชื่อ file สำหรับ output เอาเองนะครับ
Open "C:\Users\Acer\Desktop\Project\newsus\PM_" + Str(maxcount) + "_" + Str(Int(fileCount)) + ".csv" For Output As #2
Print #2, head
Print #2, cutV
Close #2
arrayCut(0)=arrayCut(1)
arrayCut(1)=arrayCut(2)
arrayCut(2)=cutV
Line Input #1, cutV
Loop
น่าจะได้นะครับ
DIM arrayCut(3) as String
DIM cutV as String
...
Open "C:\Users\Acer\Desktop\Project\newsus\PM.csv" For Input As #1
Line Input #1, head
Line Input #1, arrayCut(0)
Line Input #1, arrayCut(1)
Line Input #1, arrayCut(2)
Line Input #1, cutV
Do While Not EOF(1)
... ตรงนี้คุณใส่ maxcount , fileCount เพื่อกำหนดชื่อ file สำหรับ output เอาเองนะครับ
Open "C:\Users\Acer\Desktop\Project\newsus\PM_" + Str(maxcount) + "_" + Str(Int(fileCount)) + ".csv" For Output As #2
Print #2, head
Print #2, arrayCut(0)
Print #2, arrayCut(1)
Print #2, arrayCut(2)
Close #2
... ตรงนี้คุณใส่ maxcount , fileCount เพื่อกำหนดชื่อ file สำหรับ output เอาเองนะครับ
Open "C:\Users\Acer\Desktop\Project\newsus\PM_" + Str(maxcount) + "_" + Str(Int(fileCount)) + ".csv" For Output As #2
Print #2, head
Print #2, cutV
Close #2
arrayCut(0)=arrayCut(1)
arrayCut(1)=arrayCut(2)
arrayCut(2)=cutV
Line Input #1, cutV
Loop
น่าจะได้นะครับ
แสดงความคิดเห็น
ขอความช่วยเหลือแก้ Code VBA บน excelไฟล์.csvหน่อยครับ พอดีอยากตัด3แถว และข้อมูลมี2000กว่าแถวอ่าครับTT
นี่เป็น. Code ครับ
Sub DivideFile()
Dim record As String
Dim countloop, maxcount, maxcount1, maxcount2 As Integer
Dim head As String
Dim checkHead, fileCount, fileCount1, fileCount2 As Integer
checkHead = 1
maxcount1 = 3
maxcount2 = 1
countloop = 0
maxcount = maxcount1
fileCount = 0
fileCount1 = 0
fileCount2 = 0
Open "C:\Users\Acer\Desktop\Project\newsus\PM.csv" For Input As #1
Open "C:\Users\Acer\Desktop\Project\newsus\PM_" + Str(maxcount) + "_" + Str(Int(fileCount)) + ".csv" For Output As #2
Do Until EOF(1)
If (countloop = 0) Then
Line Input #1, head
End If
If (checkHead = 1) Then
Print #2, head
checkHead = 0
End If
Line Input #1, record
Print #2, record
countloop = countloop + 1
If (countloop Mod maxcount = 0) Then
checkHead = 1
fileCount = Switch(maxcount = maxcount1, fileCount1, maxcount = maxcount2, fileCount2)
If (maxcount = maxcount1) Then
fileCount1 = fileCount1 + 1
Else
fileCount2 = fileCount2 + 1
End If
maxcount = Switch(maxcount = maxcount1, maxcount2, maxcount = maxcount2, maxcount1)
Close #2
Open "C:\Users\Acer\Desktop\Project\newsus\PM_" + Str(maxcount) + "_" + Str(Int(fileCount)) + ".csv" For Output As #2
End If
Loop
Close #1
Close #2
End Sub
สรุปปัญหาคือ 1.หลังจากตัดแถวที่2-4แล้วบันทึกและตัดแถวที่5แล้วบันทึกและไม่สามารถย้อนกลับไปตัดแถวที่3-5 แล้วตัดแถวที่6 >>ตัดแถวที่4-6ได้แล้วตัดแถวที่7ได้อ่าครับ เหมือนทำการเฉลี่ยเคลื่อนที่คราวละ3อ่าครับ
2. ไม่สามารถตัดแถวอกกเป็น3แถวได้ครับแต่ที่ทำได้คือ (ตัด2-4ตัด5ตัด3-4ซึ่งมีแค่2แถวอ่าครับและตัด6)
พอจะมีวิธีแก้ไหมครับตอนนี้คือเครียดมากๆเลยครับ
ไฟล์.csv ใน excelครับ พอดีผมทำโปรเจคเกี่ยวกับ data mining ครับ และต้องการสร้างข้อมูล เพื่อ test model ครับผม ขอความช่วยเหลือหน่อยนะครับ
ถ้ามีภาษา อื่นๆ C# หรือ JAVA ก็แนะนำได้นะครับ