เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้ ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
Results 1 to 9 of 9

Thread: การเลือก sheet โดยใช้มาโคร

  1. #1
    abbtum
    Guest

    การเลือก sheet โดยใช้มาโคร

    สวัสดีครับ
    รบกวนท่านผู้รู้ อีกแล้วนะครับ

    ปกติ เวลา เราต้องการเลือก sheet หลายๆ ชีส
    กรณี sheet ติดกัน เราจะคลิ๊กที่ sheet แรก แล้ว กด shift ค้างไว้ แล้ว เลือก sheet สุดท้าย
    กรณี sheet ไม่ติดกัน ให้กด clt แทน

    แต่คำถามก็คือ
    ถ้าเราต้องการเลือกตั้งแต่ sheet ที่3 ไปจนถึง Sheet สุดท้าย (ที่มี) (เอาไปไว้ใน file ใหม่)
    โดยใช้วิธีบันทึก มาโคร Excel จะขึ้นเป็น ชื่อของ sheet ครับ (งง เลยครับ)
    ไม่ทราบว่าจะมีวิธี หรือ คำสั่งVBE อย่างไรครับ จึงจะเลือกได้ครับ

    ขอบคุณครับ
    ตั้ม

  2. #2
    gaka
    Guest
    คำว่า Sheet ที่ 3 นี่หมายถึง ลำดับที่สาม (แต่เป็นชื่ออะไรก็ได้) หรือ Sheet ชื่อว่า Sheet3 ครับ

  3. #3
    abbtum
    Guest
    Quote Originally Posted by gaka View Post
    คำว่า Sheet ที่ 3 นี่หมายถึง ลำดับที่สาม (แต่เป็นชื่ออะไรก็ได้) หรือ Sheet ชื่อว่า Sheet3 ครับ

    Sheet ลำดับที่ 3 (แต่เป็นชื่ออะไรก็ได้ครับ)
    และจำนวน sheet ที่ต่อจาก sheet ลำดับที่ 3 ไปจนถึงสุดท้าย ก็มีจำนวนที่ไม่แน่นอนครับ
    ประมาณว่า ต้องการจะใช้คำสั่งนี้ เพื่อ ย้ายsheet เก่าไปเก็บไว้อีก File ครับ

  4. #4
    gaka
    Guest
    ถ้าจำนวนไม่แน่นอน คิดว่า คุณควรใช้ ชื่อเพื่อเลือกจะดีกว่า
    ลองรัน
    Code:
    Sub ShowSheeetIndex()
    Dim idx As Integer
    For idx = 1 To ActiveWorkbook.Worksheets.Count
        MsgBox idx
    Next idx
    End Sub
    Code:
    Sub ShowSheeetName()
    Dim shn As Variant
    For Each shn In ActiveWorkbook.Worksheets
        MsgBox shn.Name
    Next shn
    End Sub
    ทั้งสองอันนี้เพื่อแสดงลำดับ Index กับ แสดงชื่อ ผมยังคิดว่าชื่อน่าจะดีกว่า

  5. #5
    อรวีร์
    Guest

    Smile

    code ต่อไปนี้จะ Move ตั้งแต่ Sheet ลำดับสาม(ของ workbook ที่มี code นี้อยู่) ไปไว้ workbook ใหม่ค่ะ
    Code:
    Sheets(3).Move
    Do While ThisWorkbook.Worksheets.Count > 2
        ThisWorkbook.Sheets(3).Move After:=ActiveWorkbook.Sheets(Worksheets.Count)
    Loop
    '

  6. #6
    gaka
    Guest
    อรวีร์ code ต่อไปนี้จะ Move ตั้งแต่ Sheet ลำดับสาม(ของ workbook ที่มี code นี้อยู่) ไปไว้ workbook ใหม่ค่ะ Code:
    Sheets(3).Move
    Do While ThisWorkbook.Worksheets.Count > 2
    ThisWorkbook.Sheets(3).Move After:=ActiveWorkbook.Sheets(Worksheets.Count)
    Loop
    อันนี้จะสร้าง newworkbook ทุำกครั้งที่ Move sheet หรือเปล่าครับ? ถ้าต้องการให้ไปรวมที่ new workbook เล่มเดียว (ตอนแรกยังไม่กำหนดชื่อ มัคเป็น Book1, book2.xls) หมายถึงให้รวมกันใน book เดียวกันครับ

  7. #7
    อรวีร์
    Guest

    Smile

    ใช่ค่ะ code ข้างบนนั้นจะ Move ทุก Sheet ตั้งแต่ Sheet ลำดับที่สามนำไปรวมกันใน Workbook ใหม่เพียงแฟ้มเดียว

    ActiveWorkbook ใน Code นั้นคือ Workbook เดียวกับที่ Sheets(3) ย้ายไปลงนั่นเองค่ะ
    ทุกๆชีตต่อมาก็ย้ายไปต่อจากชีตเดิมที่เพิ่งถูกย้ายไป

  8. #8
    abbtum
    Guest
    ขอขอบคุณ คุณ Gaka และ คุณอรวีร์ ด้วยนะครับ
    ผมลองผิดลองถูก หลายรอบแล้วครับ
    พอดูจากคำตอบที่ได้มาแล้ว มันเลยระดับพื้นฐานไปจริงๆ ครับ
    ตั้ม(มือใหม่)

  9. #9
    abbtum
    Guest
    วันนี้ลองใช้แล้วครับ

    ขอบอกว่า ใช้ดีสุดๆ เลยครับ เอาไปใช้กับ อีกหลาย ๆ ไฟล์
    ที่มีการ เก็บประวัติ sheet เก่าๆไว้
    โล่ง สะอาด เป็นระเบียบมากเลยครับ
    ดีใจมากครับ:hurray: ขอบคุณอีกครั้งครับ:great:

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •