: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

ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#1

Post by 9KiTTi »

ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบ เช่น ถ้าเลือกนำเข้า 10 ไฟล์ ก็จะนำเข้าได้แค่ 9 และไม่ว่าจะเลือกนำเข้าเท่าไหร่ ก็จะหายไป 1 ไฟล์เสมอครับ

Code: Select all

Sub im_money()
    Dim FNames As Variant
    Dim Cnt As Long
    Dim MstWbk As Workbook
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    Set MstWbk = ThisWorkbook
    FNames = Application.GetOpenFilename(FileFilter:="Excel files (*.xls*), *.xls*", MultiSelect:=True, Title:="เลือกไฟล์ที่จะนำเข้าตรวจสอบ")
    If Not IsArray(FNames) Then Exit Sub
    For Cnt = 1 To UBound(FNames)
        Set ws = Workbooks.Open(FNames(Cnt)).Sheets(1)
        ws.Copy After:=MstWbk.Sheets(MstWbk.Sheets.Count) ' คัดลอกแผ่นงานไปท้ายสุด
        MstWbk.Sheets(MstWbk.Sheets.Count).Name = Left(ws.Parent.Name, InStr(1, ws.Parent.Name, ".") - 1)
        ws.Parent.Close False
    Next Cnt
    ' ลบแผ่นงานชั่วคราวหลังจากนำเข้าเสร็จสิ้น (ถ้าไม่ต้องการ)
    Application.DisplayAlerts = False
    MstWbk.Sheets(MstWbk.Sheets.Count).Delete
    Application.DisplayAlerts = True
    Call addname 'นำเข้าชื่อ workbook มาใส่ในช่อง B6:B29
    Application.ScreenUpdating = True
    MsgBox "นำเข้าไฟล์สำเร็จ!", vbInformation
    Worksheets(1).Activate
End Sub
2. ผมต้องการนำเข้าชื่อ sheets ที่นำเข้ามาใหม่ไไปไว้ ที่ช่อง B6:B29 โดยไฟล์ที่นำเข้าจะมีจำนวนไม่แน่นอน บางครั้งมี 9 10 หรือ 14 แต่สูตรที่ผมเขียนจะตรงๆ รบกวนขอคำแนะนำในการปรับสูตรด้วยครับ ขอบพระคุณครับ

Code: Select all

Sub addname()

Application.DisplayAlerts = False

   If ActiveWorkbook.Worksheets.Count >= 1 Then
      ActiveWorkbook.Worksheets(1).Range("B6") = ActiveWorkbook.Worksheets(2).Name
      ActiveWorkbook.Worksheets(1).Range("B7") = ActiveWorkbook.Worksheets(3).Name
      ActiveWorkbook.Worksheets(1).Range("B8") = ActiveWorkbook.Worksheets(4).Name
      ActiveWorkbook.Worksheets(1).Range("B9") = ActiveWorkbook.Worksheets(5).Name
      ActiveWorkbook.Worksheets(1).Range("B10") = ActiveWorkbook.Worksheets(6).Name
      ActiveWorkbook.Worksheets(1).Range("B11") = ActiveWorkbook.Worksheets(7).Name
      ActiveWorkbook.Worksheets(1).Range("B12") = ActiveWorkbook.Worksheets(8).Name
      ActiveWorkbook.Worksheets(1).Range("B13") = ActiveWorkbook.Worksheets(9).Name
      ActiveWorkbook.Worksheets(1).Range("B14") = ActiveWorkbook.Worksheets(10).Name
      ActiveWorkbook.Worksheets(1).Range("B15") = ActiveWorkbook.Worksheets(11).Name
      ActiveWorkbook.Worksheets(1).Range("B16") = ActiveWorkbook.Worksheets(12).Name
      ActiveWorkbook.Worksheets(1).Range("B17") = ActiveWorkbook.Worksheets(13).Name
      ActiveWorkbook.Worksheets(1).Range("B18") = ActiveWorkbook.Worksheets(14).Name
      ActiveWorkbook.Worksheets(1).Range("B19") = ActiveWorkbook.Worksheets(15).Name
      ActiveWorkbook.Worksheets(1).Range("B20") = ActiveWorkbook.Worksheets(16).Name
      ActiveWorkbook.Worksheets(1).Range("B21") = ActiveWorkbook.Worksheets(17).Name
      ActiveWorkbook.Worksheets(1).Range("B22") = ActiveWorkbook.Worksheets(18).Name
      ActiveWorkbook.Worksheets(1).Range("B23") = ActiveWorkbook.Worksheets(19).Name
      ActiveWorkbook.Worksheets(1).Range("B24") = ActiveWorkbook.Worksheets(20).Name
      ActiveWorkbook.Worksheets(1).Range("B25") = ActiveWorkbook.Worksheets(21).Name
      ActiveWorkbook.Worksheets(1).Range("B26") = ActiveWorkbook.Worksheets(22).Name
      ActiveWorkbook.Worksheets(1).Range("B27") = ActiveWorkbook.Worksheets(23).Name
      ActiveWorkbook.Worksheets(1).Range("B28") = ActiveWorkbook.Worksheets(24).Name
      ActiveWorkbook.Worksheets(1).Range("B29") = ActiveWorkbook.Worksheets(25).Name
    End If
   
   Application.DisplayAlerts = True
   
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#2

Post by snasui »

:D ทำข้อแรกให้ผ่านก่อนครับ

ในเครื่องผมสามารถนำไฟล์เข้ามาได้ทุกไฟล์ กรุณาแนบไฟล์ตัวอย่างที่พบปัญหามาด้วยจะได้ช่วยดูให้ได้

สิ่งที่ต้องทราบคือ การนำชือไฟล์มาใช้เป็นชื่อชีต ไฟล์นั้นจะต้องมีชื่อไม่เกิน 31 อักขระ ถ้าเกินจะ Error เป็นข้อจำกัดของ Excel ที่ยอมให้กำหนดชื่อชีตได้แค่ 31 อักขระเท่านั้นครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#3

Post by 9KiTTi »

snasui wrote: Sun Oct 08, 2023 11:14 am :D ทำข้อแรกให้ผ่านก่อนครับ

ในเครื่องผมสามารถนำไฟล์เข้ามาได้ทุกไฟล์ กรุณาแนบไฟล์ตัวอย่างที่พบปัญหามาด้วยจะได้ช่วยดูให้ได้

สิ่งที่ต้องทราบคือ การนำชือไฟล์มาใช้เป็นชื่อชีต ไฟล์นั้นจะต้องมีชื่อไม่เกิน 31 อักขระ ถ้าเกินจะ Error เป็นข้อจำกัดของ Excel ที่ยอมให้กำหนดชื่อชีตได้แค่ 31 อักขระเท่านั้นครับ
ขอส่งไฟล์ตัวอย่างครับอาจารย์
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#4

Post by snasui »

:D ปัญหาคือบรรทัดนี้ครับ

MstWbk.Sheets(MstWbk.Sheets.Count).Delete

เป็น Code สำหรับลบชีตสุดท้ายทิ้งไป

การลบชีตใด ๆ ทิ้งไปจะต้องตรวจสอบให้มั่นใจว่าเป็นชีตที่ไม่จำเป็นใช่หรือไม่เสมอครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#5

Post by 9KiTTi »

snasui wrote: Sun Oct 08, 2023 12:55 pm :D ปัญหาคือบรรทัดนี้ครับ

MstWbk.Sheets(MstWbk.Sheets.Count).Delete

เป็น Code สำหรับลบชีตสุดท้ายทิ้งไป

การลบชีตใด ๆ ทิ้งไปจะต้องตรวจสอบให้มั่นใจว่าเป็นชีตที่ไม่จำเป็นใช่หรือไม่เสมอครับ
ขอบพระคุณครับอาจารย์ แก้ไขตามที่อาจารย์แนะนำสามารถแก้ไขได้แล้วครับ แต่ติดยังติดปัญหากรณีนำเข้าไฟล์แล้ว ให้นำชื่อ sheet มาแสดงที่ sheet ชื่อ Main ช่อง B6:B29 แต่ถ้าหากชีทที่นำเข้าไม่มีจะแสดงข้อผิดพลาด ผมปรับมาใช้โค้ดนี้แต่ก็ยังแก้ไม่ได้ รบกวนอาจารย์แนะนำด้วยครับ

Code: Select all

Sub addname2()

Application.DisplayAlerts = False

   If ActiveWorkbook.Worksheets(2).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B6") = ActiveWorkbook.Worksheets(2).Name
   End If
   
   If ActiveWorkbook.Worksheets(3).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B7") = ActiveWorkbook.Worksheets(3).Name
   End If

   If ActiveWorkbook.Worksheets(4).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B8") = ActiveWorkbook.Worksheets(4).Name
   End If
   
   If ActiveWorkbook.Worksheets(5).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B9") = ActiveWorkbook.Worksheets(5).Name
   End If
   
   If ActiveWorkbook.Worksheets(6).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B10") = ActiveWorkbook.Worksheets(6).Name
   End If
   
   If ActiveWorkbook.Worksheets(7).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B11") = ActiveWorkbook.Worksheets(7).Name
   End If
   
   If ActiveWorkbook.Worksheets(8).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B12") = ActiveWorkbook.Worksheets(8).Name
   End If
   
   If ActiveWorkbook.Worksheets(9).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B13") = ActiveWorkbook.Worksheets(9).Name
    End If
      
   If ActiveWorkbook.Worksheets(10).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B14") = ActiveWorkbook.Worksheets(10).Name
   End If
   
   
   If ActiveWorkbook.Worksheets(11).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B15") = ActiveWorkbook.Worksheets(11).Name
   End If
   
   If ActiveWorkbook.Worksheets(12).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B16") = ActiveWorkbook.Worksheets(12).Name
   End If
   
   If ActiveWorkbook.Worksheets(13).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B17") = ActiveWorkbook.Worksheets(13).Name
   End If
   
   If ActiveWorkbook.Worksheets(14).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B18") = ActiveWorkbook.Worksheets(14).Name
   End If
   
   If ActiveWorkbook.Worksheets(15).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B19") = ActiveWorkbook.Worksheets(15).Name
   End If
   
   If ActiveWorkbook.Worksheets(16).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B20") = ActiveWorkbook.Worksheets(16).Name
   End If
   
   If ActiveWorkbook.Worksheets(17).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B21") = ActiveWorkbook.Worksheets(17).Name
   End If
   
   If ActiveWorkbook.Worksheets(18).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B22") = ActiveWorkbook.Worksheets(18).Name
   End If
   
   If ActiveWorkbook.Worksheets(19).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B23") = ActiveWorkbook.Worksheets(19).Name
   End If
   
   If ActiveWorkbook.Worksheets(20).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B24") = ActiveWorkbook.Worksheets(20).Name
   End If
   
   If ActiveWorkbook.Worksheets(21).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B25") = ActiveWorkbook.Worksheets(21).Name
   End If
   
   If ActiveWorkbook.Worksheets(22).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B26") = ActiveWorkbook.Worksheets(22).Name
   End If
   
   If ActiveWorkbook.Worksheets(23).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B27") = ActiveWorkbook.Worksheets(23).Name
   End If
   
   If ActiveWorkbook.Worksheets(24).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B28") = ActiveWorkbook.Worksheets(24).Name
   End If
   
   If ActiveWorkbook.Worksheets(25).Name <> " " Then
      ActiveWorkbook.Worksheets(1).Range("B29") = ActiveWorkbook.Worksheets(25).Name
   End If
   
   Application.DisplayAlerts = True
   
   Worksheets("Main").Activate
   
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#6

Post by snasui »

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub addname()
    Dim sh As Worksheet
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If sh.Index > 1 Then
            With Sheets("Main")
                .Range("b30").End(xlUp).Offset(1, 0).Value = sh.Name
            End With
        End If
    Next sh
'   If ActiveWorkbook.Worksheets.Count >= 1 Then
'      ActiveWorkbook.Worksheets(1).Range("B6") = ActiveWorkbook.Worksheets(2).Name
'      ActiveWorkbook.Worksheets(1).Range("B7") = ActiveWorkbook.Worksheets(3).Name
'      ActiveWorkbook.Worksheets(1).Range("B8") = ActiveWorkbook.Worksheets(4).Name
'      ActiveWorkbook.Worksheets(1).Range("B9") = ActiveWorkbook.Worksheets(5).Name
'      ActiveWorkbook.Worksheets(1).Range("B10") = ActiveWorkbook.Worksheets(6).Name
'      ActiveWorkbook.Worksheets(1).Range("B11") = ActiveWorkbook.Worksheets(7).Name
'      ActiveWorkbook.Worksheets(1).Range("B12") = ActiveWorkbook.Worksheets(8).Name
'      ActiveWorkbook.Worksheets(1).Range("B13") = ActiveWorkbook.Worksheets(9).Name
'      ActiveWorkbook.Worksheets(1).Range("B14") = ActiveWorkbook.Worksheets(10).Name
'      ActiveWorkbook.Worksheets(1).Range("B15") = ActiveWorkbook.Worksheets(11).Name
'      ActiveWorkbook.Worksheets(1).Range("B16") = ActiveWorkbook.Worksheets(12).Name
'      ActiveWorkbook.Worksheets(1).Range("B17") = ActiveWorkbook.Worksheets(13).Name
'      ActiveWorkbook.Worksheets(1).Range("B18") = ActiveWorkbook.Worksheets(14).Name
'      ActiveWorkbook.Worksheets(1).Range("B19") = ActiveWorkbook.Worksheets(15).Name
'      ActiveWorkbook.Worksheets(1).Range("B20") = ActiveWorkbook.Worksheets(16).Name
'      ActiveWorkbook.Worksheets(1).Range("B21") = ActiveWorkbook.Worksheets(17).Name
'      ActiveWorkbook.Worksheets(1).Range("B22") = ActiveWorkbook.Worksheets(18).Name
'      ActiveWorkbook.Worksheets(1).Range("B23") = ActiveWorkbook.Worksheets(19).Name
'      ActiveWorkbook.Worksheets(1).Range("B24") = ActiveWorkbook.Worksheets(20).Name
'      ActiveWorkbook.Worksheets(1).Range("B25") = ActiveWorkbook.Worksheets(21).Name
'      ActiveWorkbook.Worksheets(1).Range("B26") = ActiveWorkbook.Worksheets(22).Name
'      ActiveWorkbook.Worksheets(1).Range("B27") = ActiveWorkbook.Worksheets(23).Name
'      ActiveWorkbook.Worksheets(1).Range("B28") = ActiveWorkbook.Worksheets(24).Name
'      ActiveWorkbook.Worksheets(1).Range("B29") = ActiveWorkbook.Worksheets(25).Name
'    End If
   
   Application.DisplayAlerts = True
   
End Sub
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#7

Post by 9KiTTi »

snasui wrote: Sun Oct 08, 2023 2:31 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub addname()
    Dim sh As Worksheet
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If sh.Index > 1 Then
            With Sheets("Main")
                .Range("b30").End(xlUp).Offset(1, 0).Value = sh.Name
            End With
        End If
    Next sh
'   If ActiveWorkbook.Worksheets.Count >= 1 Then
'      ActiveWorkbook.Worksheets(1).Range("B6") = ActiveWorkbook.Worksheets(2).Name
'      ActiveWorkbook.Worksheets(1).Range("B7") = ActiveWorkbook.Worksheets(3).Name
'      ActiveWorkbook.Worksheets(1).Range("B8") = ActiveWorkbook.Worksheets(4).Name
'      ActiveWorkbook.Worksheets(1).Range("B9") = ActiveWorkbook.Worksheets(5).Name
'      ActiveWorkbook.Worksheets(1).Range("B10") = ActiveWorkbook.Worksheets(6).Name
'      ActiveWorkbook.Worksheets(1).Range("B11") = ActiveWorkbook.Worksheets(7).Name
'      ActiveWorkbook.Worksheets(1).Range("B12") = ActiveWorkbook.Worksheets(8).Name
'      ActiveWorkbook.Worksheets(1).Range("B13") = ActiveWorkbook.Worksheets(9).Name
'      ActiveWorkbook.Worksheets(1).Range("B14") = ActiveWorkbook.Worksheets(10).Name
'      ActiveWorkbook.Worksheets(1).Range("B15") = ActiveWorkbook.Worksheets(11).Name
'      ActiveWorkbook.Worksheets(1).Range("B16") = ActiveWorkbook.Worksheets(12).Name
'      ActiveWorkbook.Worksheets(1).Range("B17") = ActiveWorkbook.Worksheets(13).Name
'      ActiveWorkbook.Worksheets(1).Range("B18") = ActiveWorkbook.Worksheets(14).Name
'      ActiveWorkbook.Worksheets(1).Range("B19") = ActiveWorkbook.Worksheets(15).Name
'      ActiveWorkbook.Worksheets(1).Range("B20") = ActiveWorkbook.Worksheets(16).Name
'      ActiveWorkbook.Worksheets(1).Range("B21") = ActiveWorkbook.Worksheets(17).Name
'      ActiveWorkbook.Worksheets(1).Range("B22") = ActiveWorkbook.Worksheets(18).Name
'      ActiveWorkbook.Worksheets(1).Range("B23") = ActiveWorkbook.Worksheets(19).Name
'      ActiveWorkbook.Worksheets(1).Range("B24") = ActiveWorkbook.Worksheets(20).Name
'      ActiveWorkbook.Worksheets(1).Range("B25") = ActiveWorkbook.Worksheets(21).Name
'      ActiveWorkbook.Worksheets(1).Range("B26") = ActiveWorkbook.Worksheets(22).Name
'      ActiveWorkbook.Worksheets(1).Range("B27") = ActiveWorkbook.Worksheets(23).Name
'      ActiveWorkbook.Worksheets(1).Range("B28") = ActiveWorkbook.Worksheets(24).Name
'      ActiveWorkbook.Worksheets(1).Range("B29") = ActiveWorkbook.Worksheets(25).Name
'    End If
   
   Application.DisplayAlerts = True
   
End Sub
สามารถทำงานได้อย่างที่ต้องการแล้วครับอาจารย์ แต่ผมยังติดปัญหาอีก 2 ข้อครับ คือ
1.หลังจากนำเข้าข้อมูล ผมต้องการรวมช่อง AQ10 (money_input) จนถึงแล้วสุดท้ายที่มี ในแต่ละชีทที่นำเข้า มาใส่ในชีท main ให้ตรงกับชื่อของแต่ละชีท ผมใช้โค้ดนี้ แต่แจ้งข้อผิดพลาด ผมต้องแก้ไขอย่างไรครับ

Code: Select all

Public Sub Sum_Money()
    
    Dim myRange As Long
    
    myRange = Worksheets("Sheet2").Range("AQ10").End(xlDown)
    
    Worksheets("Main").Range("C6") = WorksheetFunction.Sum(myRange)

End Sub
2.กรณีที่มีข้อมูลในส่วนของ outtime ในคอลลัม์ AQ ที่มีข้อมูลจำนวนเงิน จะต้องเขียนสูตรอย่างไรครับ ในส่วนนี้ผมจนปัญญาจริงๆครับ ขออภัยด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#8

Post by snasui »

:D ตัวอย่างการปรับ Code ซึ่งเป็นการรวมการคำนวณเข้าไปกับ Code เดิมครับ

Code: Select all

Sub addname()

    Dim sh As Worksheet
    Dim itme As Long
    Dim otme As Long
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If sh.Index > 1 Then
            With Sheets("Main")
                With sh
                    itme = Application.Match("InTime", .Range("a1:a1000"), 0)
                    otme = Application.Match("OutTime", .Range("a1:a1000"), 0)
                End With
                
                With .Range("b30").End(xlUp).Offset(1, 0)
                    .Value = sh.Name
                    .Offset(0, 2).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
                    .Offset(0, 4).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 1000))
                End With
            End With
        End If
    Next sh

   Application.DisplayAlerts = True
   
   Worksheets("Main").Activate
   
End Su
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#9

Post by 9KiTTi »

ขอบพระคุณครับอาจารย์ตอนนี้โปรแกรมใช้งานได้สมบูรณ์แบบอย่างที่ต้องการแล้วครับ ขอบพระคุณครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#10

Post by 9KiTTi »

พบปัญหาในการนำไฟล์เข้าครับ ถ้าหากนำเข้าทีละไฟล์จะมีไฟล์ซ้ำครับ แต่ถ้าหากนำเข้าครั้งละหลายไฟล์จะไม่เป็นอะไรครับ สามารถใช้งานได้ปกติครับ รบกวนขอคำแนะนำด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#11

Post by snasui »

:D กรุณาเขียนเงื่อนไขในการตรวจสอบพร้อมกับ Code ที่ทำงานลักษณะนั้นประกอบมาด้วย ติดปัญหาแล้วค่อยถามกันต่อ หากเขียนไว้แล้วกรุณาโพสต์ประกอบคำถามไว้ด้วยเสมอครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#12

Post by 9KiTTi »

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

Code: Select all

Sub im_money()
    Dim FNames As Variant
    Dim Cnt As Long
    Dim MstWbk As Workbook
    Dim ws As Worksheet
    
    Dim x As Long
    Dim xx As Integer

    Application.ScreenUpdating = False
    Set MstWbk = ThisWorkbook

    'Call delsheets

    FNames = Application.GetOpenFilename(FileFilter:="Excel files (*.xls*), *.xls*", MultiSelect:=True, Title:="เลือกไฟล์ที่จะนำเข้าตรวจสอบ")
    If Not IsArray(FNames) Then Exit Sub

    For Cnt = 1 To UBound(FNames)
        Set ws = Workbooks.Open(FNames(Cnt)).Sheets(1)
        ws.Copy After:=MstWbk.Sheets(MstWbk.Sheets.Count) ' คัดลอกแผ่นงานไปท้ายสุด
        MstWbk.Sheets(MstWbk.Sheets.Count).Name = Left(ws.Parent.Name, InStr(1, ws.Parent.Name, ".") - 1)
        ws.Parent.Close False
    Next Cnt

    ' ลบแผ่นงานชั่วคราวหลังจากนำเข้าเสร็จสิ้น (ถ้าไม่ต้องการ)
    Application.DisplayAlerts = False
    'MstWbk.Sheets(MstWbk.Sheets.Count).Delete
    Application.DisplayAlerts = True
    
For x = 1 To 100
        UpdateProgressBar x, 100
    Next x
    
    Call addname

    Application.ScreenUpdating = True
    
    MsgBox "นำเข้าไฟล์สำเร็จ!", vbInformation

    Worksheets("Main").Activate
End Sub
You do not have the required permissions to view the files attached to this post.
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#13

Post by 9KiTTi »

ตัวโปรแกรมครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#14

Post by snasui »

:D ยังไม่พบว่ามีการเขียนโปรแกรมสำหรับการจัดการปัญหาดังกล่าวในไฟล์โปรแกรมข้างต้น

หลักการคือจะต้องตรวจสอบกับชีต Main ก่อนว่ามีชีตอยู่แล้วหรือไม่ หากมีอยู่แล้วจะไม่มีการ Copy ชีตมาใช้ เช่นเดียวกัน ในขั้นตอนการ Copy ชีตมาแสดงในชีต Main ก็จะไม่ Copy มาเช่นกัน ลองพยายามมาเองก่อน ติดตรงไหนค่อยถามกันครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#15

Post by 9KiTTi »

ขอนุญาตครับ ผมขออนุญาตขอความช่วยเหลือ 2 ข้อครับ
1.หลังจากผมนำไฟล์เข้า workbook ได้แล้ว แต่หลังจากนั้นใช้คำสั่งเพื่อประมวลผลของข้อมูลจากไฟล์ชีดที่นำเข้าทั้งหมด พบว่าหากนำเข้าไฟล์ทุกไฟล์แล้วใช้ประมวลผลจะแสดงข้อมูลได้ถูกต้อง แต่หากนำไฟล์เข้าเพิ่มจะแสดงรายชื่องวดซ้ำซ้อนครับ
คำสั่งประมวลผลข้อมูล

Code: Select all

Sub addname()
    Dim sh As Worksheet
    Dim itme As Long
    Dim otme As Long
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If sh.Index > 1 Then
            With Sheets("Main")
                With sh
                    itme = Application.Match("InTime", .Range("a1:a10000"), 0)
                    otme = Application.Match("OutTime", .Range("a1:a10000"), 0)
                End With
                
                With .Range("b30").End(xlUp).Offset(1, 0)
                    .Value = sh.Name
                    .Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
                    .Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 10000))
                    
                    .Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
                    .Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 10000))  
                End With
            End With
        End If
    Next sh
   Application.DisplayAlerts = True
   Worksheets("Main").Activate
End Sub
2.ผมลองเขียน code เพื่อทำใส่สีเฉพาะแถวที่ cell ใน คอลัมม์ AQ ที่มีค่าเท่ากับ 0 หรือน้อยกว่า 0 ทั้ง 2 ช่วงข้อมูลคือ InTime กับ OutTime แต่ด้วยความรู้ยังน้อยเกี่ยวกับ VBA จึงทำงานไม่ได้ ขอความอนุเคราะห์ชี้แนะด้วยครับ ขอบพระคุณครับ

Code: Select all

Sub hlrow()
    Dim sh As Worksheet
    Dim itme As Long
    Dim otme As Long
    
    'Application.DisplayAlerts = False
    
    For Each sh In Worksheets
        If sh.Index > 1 Then  'มากกว่า 1 ชีท
            With Sheets("Main")
                With sh
                
                    itme = Application.Match("InTime", .Range("a1:a10000"), 0)
                    otme = Application.Match("OutTime", .Range("a1:a1000"), 0)
                    
                    If itme.Range("AQ10:AQ").Value = 0 Then Interior.Color = vbYellow
          
                End With    
            End With
        End If 
    Next sh
   'Application.DisplayAlerts = True
   Worksheets("Main").Activate
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#16

Post by snasui »

:D แก้ให้ผ่านไปทีละเรื่องครับ

ที่บอกว่าปรับมาแล้วนั้นยังไม่มีบรรทัดไหนทำตามเงื่อนไขที่ผมแนะนำไป ตัวอย่าง Code สำหรับการตรวจสอบว่ามีชีตอยู่แล้วหรือไม่เป็นตามด้านล่างครับ

Code: Select all

'Other code
If Application.CountIfs(.Range("b6:b30"), sh.Name) = 0 Then
    With .Range("b30").End(xlUp).Offset(1, 0)
        .Value = sh.Name
        .Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 1000))
        .Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 1000))
    End With
End If
'Other code

Code: Select all

'Other code
If Application.CountIfs(.Range("b6:b30"), sh.Name) = 0 Then
    With .Range("b30").End(xlUp).Offset(1, 0)
        .Value = sh.Name
        .Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 1000))
        .Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 1000))
    End With
End If
'Other code
จำเป็นจะต้องศึกษาให้เข้าใจหากต้องการทำงานเดิมซ้ำ ๆ ที่ต้องการทำมาใช้เฉพาะค่าที่ยังไม่เคยบันทึกไว้
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#17

Post by 9KiTTi »

snasui wrote: Thu Oct 26, 2023 11:56 am :D แก้ให้ผ่านไปทีละเรื่องครับ

ที่บอกว่าปรับมาแล้วนั้นยังไม่มีบรรทัดไหนทำตามเงื่อนไขที่ผมแนะนำไป ตัวอย่าง Code สำหรับการตรวจสอบว่ามีชีตอยู่แล้วหรือไม่เป็นตามด้านล่างครับ

Code: Select all

'Other code
If Application.CountIfs(.Range("b6:b30"), sh.Name) = 0 Then
    With .Range("b30").End(xlUp).Offset(1, 0)
        .Value = sh.Name
        .Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 1000))
        .Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 1000))
    End With
End If
'Other code

Code: Select all

'Other code
If Application.CountIfs(.Range("b6:b30"), sh.Name) = 0 Then
    With .Range("b30").End(xlUp).Offset(1, 0)
        .Value = sh.Name
        .Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 1000))
        .Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
        .Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 1000))
    End With
End If
'Other code
จำเป็นจะต้องศึกษาให้เข้าใจหากต้องการทำงานเดิมซ้ำ ๆ ที่ต้องการทำมาใช้เฉพาะค่าที่ยังไม่เคยบันทึกไว้
กรณี code นี้จะพบปัญหาหลังจากนำข้อมูลเพิ่ม และรันด้วย code นี้ จะมีข้อมูลในรายงานงวดซ้ำครับ เช่น ถ้านำเข้าไฟล์ชื่อ 6603_MM_01 เข้าแล้วนำเข้าไฟล์ชื่อ 6603_MM_02 เข้า แล้วรัน code นี้ จะมีไฟล์งวดชื่อ 6603_MM_01 ขึ้นมา 2 รายการครับ
ส่วน Code ที่ผมปรับแก้คือ code ที่ใช้ใส่สีในแถวที่มีข้อมูลเป็น 0 หรือน้อยกว่า 0 ในคอลัมม์ AQ ครับอาจารย์

Code: Select all

Sub hlrow()
    Dim sh As Worksheet
    Dim itme As Long
    Dim otme As Long
    
    'Application.DisplayAlerts = False
    
    For Each sh In Worksheets
        If sh.Index > 1 Then  'มากกว่า 1 ชีท
            With Sheets("Main")
                With sh
                
                    itme = Application.Match("InTime", .Range("a1:a10000"), 0)
                    otme = Application.Match("OutTime", .Range("a1:a1000"), 0)
                    
                    If itme.Range("AQ10:AQ").Value = 0 Then Interior.Color = vbYellow
          
                End With    
            End With
        End If 
    Next sh
   'Application.DisplayAlerts = True
   Worksheets("Main").Activate
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#18

Post by snasui »

:D กรุณานำ Code ที่ผมปรับไปให้ในโพสต์ #16 :roll: เรื่องข้อมูลซ้ำไปใช้กับไฟล์ที่เป็นปัญหา ทดสอบดูว่าซ้ำตรงไหน อย่างไร กรุณาณาแจ้งมาพร้อมกับไฟล์ที่ปรับปรุง Code แล้วจะได้ตอบปัญหาต่อไปจากนั้น ประเด็นเรื่องใส่สีค่อยดำเนินการในลำดับถัดไปเมื่อปัญหาแรกได้รับการแก้ไขแล้วครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#19

Post by 9KiTTi »

ต้องขออภัยอาจารย์ครับ ผมพลาดเองแก้อีกไฟล์ แต่ส่งอีกไฟล์ไปให้ครับ ตอนนี้ได้แก้ตามอาจารย์แต่เจอ error ครับ ตามภาพครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามปัญหาการนำเข้า workbook อื่น มาได้ไม่ครบและเปลี่ยนชื่อ worksheets ด้วยชื่อ workbook ที่นำเข้าครับ

#20

Post by snasui »

:D ที่ปรับมานั้น Code เดิมที่สำคัญหายไปหลายบรรทัดเลยทำงานไม่ได้

Code ที่ทำงานได้จะต้องเป็นตามด้านล่างครับ

Code: Select all

Sub addname()
    Dim sh As Worksheet
    Dim itme As Long
    Dim otme As Long
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If sh.Index > 1 Then
            With Sheets("Main")
                With sh
                    itme = Application.Match("InTime", .Range("a1:a1000"), 0)
                    otme = Application.Match("OutTime", .Range("a1:a1000"), 0)
                End With
                
            If Application.CountIfs(.Range("b6:b30"), sh.Name) = 0 Then
                With .Range("b30").End(xlUp).Offset(1, 0)
                    .Value = sh.Name
                    .Offset(0, 1).Value = Application.Sum(sh.Range("aq" & itme & ":aq" & otme))
                    .Offset(0, 3).Value = Application.Sum(sh.Range("aq" & otme & ":aq" & 1000))
                    .Offset(0, 2).Value = Application.Count(sh.Range("aq" & itme & ":aq" & otme))
                    .Offset(0, 4).Value = Application.Count(sh.Range("aq" & otme & ":aq" & 1000))
                End With
            End If
            End With
        End If
    Next sh

   Application.DisplayAlerts = True
   
   Worksheets("Main").Activate
   
End Sub
Post Reply