: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

ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจำวัน

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
moo_oun
Member
Member
Posts: 6
Joined: Mon Aug 22, 2011 8:53 am

ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจำวัน

#1

Post by moo_oun »

พอดีหนูมาฝึกงาน แล้วหนูเพิ่งจะมาใช้ excel ค่ะ ที่เคยใช้มาเป็นแค่พื้นฐานทั่วไป
งานที่หนูต้องทำนี้ เหมือนจะต้องเขียน VBA ซึ่งหนูเคยเขียนมาบ้างแล้ว แต่เขียนใน access
รายละเอียดของที่หนูต้องทำนะค่ะ คือจะมีไฟล์ excel ทั้งหมด 3 ไฟล์ ซึ่งเป็นรายงานที่ดึงมาจาก SAP
แล้วหนูจะต้องทำรายงานวัตถุดิบที่ยังไม่ส่งมา(PO) โดยนำข้อมูลทั้ง 3 ไฟล์นี้มารวมกัน
ยกตัวอย่างชื่อไฟล์นะค่ะ A_22.8.2001.xls ทุกไฟล์จะเป็นชื่อรายงานพร้อมกับวันที่ ที่ดึงรายงานออกมาจาก SAP
และไฟล์ที่นำมาใช้จะมี
master.xls (ไฟล์นี้จะเก็บข้อมูลวัตถุดิบทั้งหมด ซึ่งนานๆครั้งจะดึงออกมา เพราะไม่ค่อยมีการเปลี่ยนแปลง ถ้าเปลี่ยนแปลงรายละเอียดค่อยดึงออกมาใหม่)
PR_22.8.2011.xls (ไฟล์นี้จะเก็บข้อมูลวัตถุดิบที่ได้สั่งซื้อไป มีข้อมูลต่างๆเช่นวันสั่งซื้อ จะดึงรายงานนี้ออกมาทุกวัน)
PO_22.8.2011.xls (ไฟล์นี้จะเป็นข้อมูลของวัตถุดิบที่ยังไม่ส่งมา จะดึงเป็นรายงานออกมาทุกวันค่ะ)

ทั้งสามไฟล์นี้มีข้อมูลที่เหมือนกันคือ รหัสวัตถุดิบ ซึ่งจะเป็นตัวเชื่อมข้อมูล
รายงานที่จะทำออกมาคือ ใช้รหัสวัตถุดิบ ในไฟล์ PO_22.8.2011 เป็นหลัก แล้วดึงข้อมูลคอลัมน์ต่างๆจากไฟล์อื่น
และรายงานนี้จะต้องทำทุกวัน สิ่งที่หนูคิดจะทำคือ

1. สร้าง POReport.xls เพื่อออกรายงานประจำวัน
2. เมื่อเลือกวันที่ที่ต้องการออกรายงาน โดยดึงข้อมูลมาจากชื่อไฟล์ที่มีวันที่ตรงกับที่เลือกไว้(ไฟล์ทั้งหมดเก็บไว้ที่ folder เดียวกัน)
3. แสดงข้อมูลรายงาน เช่น วัตถุดิบที่ยังไม่ส่งมามีทั้งหมด 5 ตัว (PO) ก็แสดงข้อมูลต่างๆแค่ 5 ตัวนี้

หนูคิดว่ามันจะต้องเขียน ด้วย VBA โดยอับดับแรกเขียนเพื่อให้ดึงข้อมูลจาก 3 ไปนี้มาเก็บไว้ที่ตัวแปรก่อน
จากนั้นก็ค่อยกำหนดว่าต้องการให้แสดงข้อมูลอะไร จึงอยากขอคำแนะนำว่าจะเขียนประมาณไหนได้บ้าง

ขอขอบคุณล่วงหน้านะค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31034
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#2

Post by snasui »

:D เป็นการแนะนำที่ยากพอสมควรครับ ถ้าเคยเขียน VBA มาแล้วก็ลองเขียนมาก่อนตามที่เขียนมาเป็นข้อ ๆ นั่นแหละครับ ติดตรงไหนก็ค่อยมาถามกันต่อ

จะแนะนำได้ตรงประเด็นก็ต่อเมื่อเห็นไฟล์ เห็นการวางตำแหน่งข้อมูล เห็นสิ่งที่ต้องการจะทำ การบอกอย่างกว้าง ๆ ว่าให้ดึงข้อมูลจากไฟล์ A ยังไฟล์ B ตามเงื่อนไข C ไม่น่าจะเกิดประโยชน์อะไรสักเท่าไรครับ
moo_oun
Member
Member
Posts: 6
Joined: Mon Aug 22, 2011 8:53 am

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#3

Post by moo_oun »

หนูเริ่มไม่ถูกค่ะ ขอเป็นการแนะนำการเขียนโค๊ด เรียกใช้ไฟล์ทั้งสามไฟล์ได้มั๊ยค่ะ
ที่หนูลองหาในอินเตอร์เน็ตดู ก็เป็นการเปิดไฟล์มาใช้งาน จากนั้นก็ปิด
แต่ปัญหามันอยู่ที่ว่า หนูไม่สามารถเขียนคำสั่งให้มันทำงานได้
ตัวอย่างโค๊ดนะค่ะ

Sub Button5_Click()
Dim cur As Integer
Dim actWBName As String
actWBName = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogOpen)
.Title = "Select File"
.AllowMultiSelect = False
.Show
Workbooks.Open (.SelectedItems(1))
cur = Workbooks.Count
Workbooks(cur).Activate

ในส่วนนี้คือต้องการ copy ข้อมูลในไฟล์ที่เปิดมาใส่ไว้
เช่น copy คอลัม A ทั้งหมดในไฟล์ที่เพิ่งเปิดนี้ มาใส่ไว้ในไฟล์ปัจจุบันค่ะ


Workbooks(cur).Close
Workbooks(actWBName).Activate
End With
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31034
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#4

Post by snasui »

:D ส่งไฟล์มาด้วยครับจะได้ทดสอบได้ อีกอย่างการเขียน Code มันต้องอ้างอิง Object ต้องทดสอบ เขียนลอย ๆ ไม่ได้ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31034
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#5

Post by snasui »

:D อันนี้เป็นตัวอย่างการนำข้อมูลใน Sheet1 ของทุกไฟล์ที่เปิดขึ้นมาพร้อมกันมาวางใน Sheet1 ของ Book1

Code: Select all

Sub CopyValue()
Dim r As Range, lng As Long, rAll As Range
Dim i As Integer
lng = Rows.Count
For i = 2 To Workbooks.Count
    With Workbooks(i).Worksheets(1)
         Set rAll = .Range("A1", .Range("A" & lng).End(xlUp))
         Set r = Workbooks("Book1").Worksheets("Sheet1") _
            .Range("A" & lng).End(xlUp).Offset(1, 0)
        rAll.Copy
        r.PasteSpecial xlPasteValues
    End With
Next
Application.CutCopyMode = False
End Sub
moo_oun
Member
Member
Posts: 6
Joined: Mon Aug 22, 2011 8:53 am

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#6

Post by moo_oun »

ขอบคุณค่ะ ^_^
หนูมีปัญหาใหม่แล้วตอนนี้ คือหนูเขียน code เพื่อcopy ข้อมูลจากคอลัมน์ A I K และ O
หนูต้องการแค่ 4 คอลัม แต่ว่ามันมาหมดเลยตั้งแต่คอลัม A ถึง O หนู กำหนด range ไม่ถูกรึป่าวค่ะ


Sub Openfile_Click()
Dim cur As Integer
Dim actWBName, a, b As String
actWBName = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogOpen)
.Title = "Select File"
.AllowMultiSelect = False
.Show
Workbooks.Open (.SelectedItems(1))
cur = Workbooks.Count
Workbooks(cur).Activate


a = Cells(1, 3).Value

Range("A:A,I:I,K:K,O:O").Select
Selection.Copy

Workbooks(cur).Close
Workbooks(actWBName).Activate
End With

Cells(4, 2).Value = a

Sheets("PO_overdue").Select
Columns("A:A").Select
ActiveSheet.Paste

End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31034
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#7

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Openfile_Click()
Dim cur As Integer
Dim actWBName, a, b As String

actWBName = ActiveWorkbook.Name

With Application.FileDialog(msoFileDialogOpen)
    .Title = "Select File"
    .AllowMultiSelect = False
    .Show
    Workbooks.Open (.SelectedItems(1))
End With

cur = Workbooks.Count
Workbooks(cur).Activate

a = Cells(1, 3).Value

Range("A:A,I:I,K:K,O:O").Select
Selection.Copy

Workbooks(actWBName).Activate

Cells(4, 2).Value = a

Sheets("PO_overdue").Select
Columns("A:A").Select
ActiveSheet.Paste
Workbooks(cur).Close
End Sub
moo_oun
Member
Member
Posts: 6
Joined: Mon Aug 22, 2011 8:53 am

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#8

Post by moo_oun »

ขอบคณมากค่ะ ได้แล้ว ^______^
เดี๋ยวเจอปัญหาจะมาขอรบกวนใหม่นะค่ะ
moo_oun
Member
Member
Posts: 6
Joined: Mon Aug 22, 2011 8:53 am

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#9

Post by moo_oun »

หนูใสโค๊ดนี้ตอนที่ vlookup ไม่ได้ค่ะ มันไม่ให้ใส่
=If(Isna(Formula),"",Formula)

ตอนนี้หนูเลย ใช้ vlook up ธรรมดา
แต่ถ้าหาข้อมูลไม่เจอมันจะขึ้น #n/a แล้วหนูต้องการเปลี่ยนให้เป็นช่องว่างค่ะ

หนูแนบไฟล์ตัวอย่างไปด้วยนะค่ะ Vlookup อยู่ใน sheet report
การทำงานของ report คือคลิ๊กที่ปุ่มเพื่อเลือกไฟล์ แล้ว เขียน code copy ข้อมูลมาไว้ใน sheet ต่างๆ

ในsheet report จะเป็นคำสั่ง vlookup เพื่อแสดงข้อมูลจาก sheet ต่างๆค่ะ แต่หนูติดปัญหาตรงที่ว่าใส่เงื่อไข If ให้แสดงช่องว่าง
รบกวนช่วยดูหน่อยนะค่ะ

ขอบคุณค่ะ ^ ^
You do not have the required permissions to view the files attached to this post.
moo_oun
Member
Member
Posts: 6
Joined: Mon Aug 22, 2011 8:53 am

Re: ขอรบกวน สอบถามเรื่องการใช้ excel หลายไฟล์ มาทำรายงานประจ

#10

Post by moo_oun »

ตอนนี้ได้แล้วนะค่ะ พอดีตอนแรกไม่ได้สังเกตว่า หน้า vlookup ไม่ต้องใส่ =
Post Reply