:!: โปรดทราบ Image
    1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ดครับ Image
    2. การสมัครสมาชิกเพื่อโพสต์คำถาม ดาวน์โหลดไฟล์แนบไปศึกษา ทำตามขั้นตอนด้านล่างครับ
      1. สมัครสมาชิก ดูขั้นตอนตาม Link นี้ครับ => สมัครสมาชิก กรณีลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่นี่ครับ => Reset รหัสผ่านImage
      2. Login เข้าระบบโดยคลิก Login ตรงมุมขวาบนของหน้านี้ Image กรณีมีปัญหาในการเข้าใช้งาน คลิก Link นี้เพื่อแจ้งผู้ดูแลระบบครับ => ติดต่อผู้ดูแลระบบ
    3. เมื่อ Login แล้วสามารถกำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษได้ที่ Link นี้ครับ => ตั้งค่าส่วนตัว Image
    4. วิธีการตั้งและตอบกระทู้ดูได้ที่ Link นี้ครับ => วิธีการตั้งและตอบกระทู้ Image
    5. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ Link นี้ครับ => จัดรูปแบบตัวอักษร และสามารถกำหนดขนาดตัวอักษรใน Browser ได้ที่นี่ครับ ==> กำหนดขนาดตัวอักษรใน Browser Image

ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
shikamaru
Member
Member
Posts: 19
Joined: Mon Jan 09, 2017 11:31 am

ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#1

Postby shikamaru » Tue Jan 10, 2017 4:06 pm

เนื่องจากผมต้องรันไฟล์ Excel มาทุกวัน ชื่อ Sheet ในไฟล์จะรันชื่อ ตามวัน เช่น Ex_0801, Ex_0901, Ex1001 ซึ่งผมจะต้องทำการรวมไฟล์
และลบ sheet ที่ไม่เกี่ยวข้องออก เลยใช้ Macro ในการลบ แต่ Macro จะจำชื่อ sheet ที่บันทึกในครั้งแรกไว้ ผมต้องการให้ลบได้ทุก sheet ต้องแก้ไขตรงไหนบ้างครับ

Code: Select all

Sub Delete_Sheet()

Application.DisplayAlerts = False

' Delete_Sheet Macro

    Dim strThisbook As Variant
   
strThisbook = Application.GetOpenFilename(Filefilter:= _
            "All File (*.*), *.*", Title:="Please select source file(s).", MultiSelect:=True)

    Sheets(Array("Ex_0801", "Ex_0901")). _
        Select
       
    Sheets("Ex_0901").Activate
   
    ActiveWindow.SelectedSheets.Delete
    ActiveWorkbook.Save
    ActiveWindow.Close
   
End Sub


User avatar
snasui
Site Admin
Site Admin
Posts: 20487
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#2

Postby snasui » Tue Jan 10, 2017 5:46 pm

:D แนบไฟล์ตัวอย่างมาด้วยจะได้สะดวกในการทดสอบครับ

shikamaru
Member
Member
Posts: 19
Joined: Mon Jan 09, 2017 11:31 am

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#3

Postby shikamaru » Tue Jan 10, 2017 6:56 pm

อาจารย์ครับ ผมแนบไฟล์มาให้แล้วครับ แต่เกิดปัญหา หลังจาก สร้าง Macro เสร็จแล้ว ปิดไฟล์ Macro Delete ไป
แล้วเปิดไฟล์ Macro Delete ใหม่ กดปุ่ม Delete sheet แล้วเกิด Error run-time '9' : Subscript Out of rang ครับ
ผมต้องแก้ไขอย่างไรครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 20487
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#4

Postby snasui » Tue Jan 10, 2017 8:59 pm

:D ไฟล์ที่จะแนบ Macro ได้จะต้อง Save As เป็นนามสกุล .xlsm เป็นอย่างน้อย ลองแนบไฟล์มาใหม่ครับ

shikamaru
Member
Member
Posts: 19
Joined: Mon Jan 09, 2017 11:31 am

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#5

Postby shikamaru » Wed Jan 11, 2017 10:03 am

อาจารย์ครับ ผมแก้ไขตามที่อาจารย์ได้ให้แก้แล้วนะครับ แต่พอรัน Macro ก็ขึ้น Error Run time 9 ครับ
ผมแนบไฟล์มาให้ใหม่แล้วครับ อันนี้เกิดจากการที่ผมเปลี่ยนชื่อ sheet ด้วยหรือเปล่าครับ
You do not have the required permissions to view the files attached to this post.

shikamaru
Member
Member
Posts: 19
Joined: Mon Jan 09, 2017 11:31 am

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#6

Postby shikamaru » Wed Jan 11, 2017 10:03 am

แนบไฟล์เพิ่มเติมครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 20487
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#7

Postby snasui » Wed Jan 11, 2017 4:54 pm

:D ไม่พบ Code ในไฟล์ MacroDelete.xlsm ครับ

การแนบ Macro มาในไฟล์ให้กดแป้น Alt+F11 เพื่อเปิดหน้าต่าง VBE > เข้าเมนู Insert > Module แล้ววาง Code ใน Module ครับ

shikamaru
Member
Member
Posts: 19
Joined: Mon Jan 09, 2017 11:31 am

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#8

Postby shikamaru » Wed Jan 11, 2017 5:08 pm

ผมนำ Code ไปวางใน Module ตามที่อาจารย์บอกแล้วครับ ก็ยังใช้งานไม่ได้ครับ Error เหมือนเดิมครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 20487
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#9

Postby snasui » Wed Jan 11, 2017 5:35 pm

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub Delete_Sheet()

Application.DisplayAlerts = False

' Delete_Sheet Macro

    Dim strThisbook As Variant
   
    strThisbook = Application.GetOpenFilename(Filefilter:= _
            "All File (*.*), *.*", Title:="Please select source file(s).", MultiSelect:=True)

    If TypeName(strThisbook) = "Boolean" Then
        Exit Sub
    End If
   
    For i = 1 To UBound(strThisbook)
        Workbooks.Open (strThisbook(i))
        Sheets(Array("Ex_0801", "Ex_0901")). _
            Select
           
        Sheets("Ex_0901").Activate
       
        ActiveWindow.SelectedSheets.Delete
        ActiveWorkbook.Save
        ActiveWindow.Close
   
    Next i
End Sub

shikamaru
Member
Member
Posts: 19
Joined: Mon Jan 09, 2017 11:31 am

Re: ใช้ macro ทำการลบ sheet ในไฟล์อื่น ขอแนวทางหน่อยครับ

#10

Postby shikamaru » Thu Jan 12, 2017 8:52 am

:thup: :cp: :D
ขอบคุณมาครับอาจารย์ ใช้งานได้แล้วครับ


Return to “Excel”

Who is online

Users browsing this forum: Google [Bot] and 18 guests