Page 1 of 1
ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใหม่
Posted: Sat Dec 14, 2013 10:48 pm
by kizarik
คือผมมีข้อมูลที่มันไม่ได้เป็นตารางชัดเจน กระจายตำแหน่ง แล้วจะทำปุ่มดึงไปอีก sheet แล้วอยากให้มันขึ้นบรรทัดใหม่ครับ
ลองทำไปพอ ทำการดึงเสร็จแล้วมา ลองทำ แล้วจะมาเติม offset ตามลิงค์
http://www.excelexperttraining.com/blog ... 000683.php แล้วงงว่า จะต้องใส่อย่างไรครับ
พอดีผมทำด้วยการใช้การ บันทึก Macro แล้วไปแก้ cell ตามเอาอย่างเดียวครับ
อยากจะขอคำแนะนำในการใส่ offset ใน macro send_data_bill ครับ พอดีผมเริ่มใช้ macro ครั้งแรกครับ ขอบคุณครับ
ใส่ข้อมูลในบิล แล้วอยากให้กด ปุ่ม บันทึกแล้วจะส่งข้อมูลไปที่ sheet Data ครับ
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sun Dec 15, 2013 6:07 am
by snasui

เพื่อให้ง่าย ให้สร้าง Template มารับข้อมูลจากชีท Bil_A5 แล้วค่อยใช้ Macro หรือ VBA บันทึกข้อมูลไปยังชีท Data ดูตัวอย่างที่ Link นี้ครับ
viewtopic.php?f=3&t=3155
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sun Dec 15, 2013 11:59 am
by kizarik
ขอบคุณครับ เดี๋ยวลองทำดูก่อนครับ
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sun Dec 15, 2013 3:52 pm
by kizarik
ผมลองแก้ใหม่ โดยการเอาไปพักอีก ชีทData แล้วค่อยดึงไป save data พอ ลองทำแล้วติดว่า มัน error ตรงที่ off set ครับ ครั้งแรกทำแล้วมันได้
พอลองอีกครั้งไม่ได้ครับ ไม่แน่ใจว่าผิดตรงไหนครับ
แนบไฟล์ใหม่มาด้วยแล้วครับ
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sun Dec 15, 2013 4:43 pm
by snasui

ลองตามนี้ครับ
- ที่ชีท Save Data เราจะใช้เป็น Template
- เซลล์ A4 คีย์สูตรเพื่อให้แสดงเป็นวัน เวลาปัจจุบัน
=Now()
- เซลล์ B4 คีย์สูตรเพื่อ Link เอาค่าจากชีท Bill_A5 เซลล์ I9 มาใช้
=Bill_A5!I9
- เซลล์ C4 คีย์สูตรเพื่อ Link เอาค่าจากชีท Bill_A5 เซลล์ D11 มาใช้
=Bill_A5!D11
- เซลล์ที่เหลือให้ Link ในลักษณะเดียวกันจนครบตามต้องการ
- ปรับ Code ที่ Procedure send_data_bill เป็นตามด้านล่าง
Code: Select all
Sub send_data_bill()
Sheets("Save Data").Range("a4:ad4").Copy
Sheets("Data").Range("a" & Rows.Count) _
.End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Mon Dec 16, 2013 5:04 pm
by kizarik
ขอบคุณมากๆเลยครับ ในที่สุดผมก็ทำได้แล้ว

Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sat Dec 21, 2013 4:16 pm
by kizarik
รบกวนอาจารย์อีกรอบครับ พอดีผมลองทำให้มันเก็บแยกไฟล์แล้วมันมีปัญหา macro error
แบบผมคือ ต้องการเก็บข้อมูล แยกปี เป็น folder และ เดือน เป็น file.xlsx eg; \2013\12.xlsx
folder หลัก ที่มี ไฟล์ bill อยู่ จะมี folder\file; data\template\template.xlsx เป็น template
จากนั้นพอกดปุ่ม จะให้เช็คว่ามี folder(ปี)/file(เดือน).xlsx ถ้ามีให้ส่งข้อมูลไป ถ้าไม่มีให้ copy template แล้วเปลี่ยนชื่อเป็นเดือนนั้นๆ
แนบไฟล์มาแล้ว รบกวนอาจารย์ช่วยดูหน่อยครับ
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sat Dec 21, 2013 4:51 pm
by snasui
kizarik wrote:folder หลัก ที่มี ไฟล์ bill อยู่ จะมี folder\file; data\template\template.xlsx เป็น template
จากนั้นพอกดปุ่ม จะให้เช็คว่ามี folder(ปี)/file(เดือน).xlsx ถ้ามีให้ส่งข้อมูลไป ถ้าไม่มีให้ copy template แล้วเปลี่ยนชื่อเป็นเดือนนั้นๆ

ช่วยอธิบายข้อความที่ผมระบายสี ยกตัวอย่างให้เห็นว่าต้องการจะทำลักษณะใด เดือนนั้น ๆ ดูที่ไหนครับ
การตรวจสอบว่ามีหรือไม่มี Folder ดูตัวอย่างจาก Link นี้
Check existing and create new folder ควรปรับ Code มาเองก่อนติดตรงไหนค่อยมาถามกันต่อ โดยระบุบรรทัดที่เป็นปัญหาให้ชัดเจนจะได้ปรับปรุงต่อไปจากนั้นครับ
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sat Dec 21, 2013 4:58 pm
by kizarik
ยกตัวอย่างเอานะครับ คือ เช่น D:\Data\2013\12.xlsx
แต่ถ้าตรวจแล้วไม่เจอจะ copy D:\Data\Template\template.xlsx แล้ว rename เป็น D:\Data\2013\12.xlsx
คือตรงนี้ผมทำมันผ่านแล้ว มัน copy และ เปลี่ยนชื่อเรียบร้อยแล้ว แต่มัน ติด error ที่
Sub Save_data_Bill()
Dim New_data_name
New_data_name = ActiveWorkbook.Path & "\" & "Data" & "\" & Year(Date) & "\" & month(Date) & ".xlsx"
ActiveWorkbook.Sheets("Data").Range("A4:AD4").Copy
Workbooks(New_data_name).Sheets("Save_Data").Range("a" & Rows.Count) _
.End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sat Dec 21, 2013 5:19 pm
by snasui

สั่งให้เปิด
Workbooks(New_data_name) ขึ้นมาก่อนแล้วค่อย Copy และวางข้อมูลครับ
Re: ถามวิธีดึงข้อมูลที่ไม่เรียงลำดับกันไปชีทใหม่แล้วขึ้นแถวใ
Posted: Sat Dec 21, 2013 7:04 pm
by kizarik