Page 2 of 2

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Thu Dec 28, 2017 10:00 pm
by March201711
ทำได้แล้ว ขอบคุณอาจารย์มากๆเลยคะ ได้ความรู้เพิ่มขึ้นจากไม่ค่อยรู้เรื่อง code vba มาก่อนเลยค่ะ :D

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 8:03 am
by alundc45
สอบถามครับ ถ้าเรามี 10 sheet แต่เราต้องการเปลี่ยนแค่ 5 เราระบุชื่อชื่อไปเลยได้ไหมครับ เช่น sheet1,sheet6,sheet3

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 8:12 am
by snasui
:D การเขียนโปรแกรมด้วย VBA สามารถทำได้แทบทุกอย่างครับ

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

สำหรับ VBA จะต้องเขียนกันมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน :roll: ติดแล้วค่อยถามกันครับ

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 9:10 am
by alundc45
alundc45 wrote: Sun Nov 04, 2018 8:03 am สอบถามครับ ถ้าเรามี 10 sheet แต่เราต้องการเปลี่ยนแค่ 5 เราระบุชื่อชื่อไปเลยได้ไหมครับ เช่น sheet1,sheet6,sheet3
ขอโทษด้วยครับที่ให้ข้อมูลไม่ละเอียด ผมทำไฟล์แนบมาตามนี้ครับผม

Code ที่ใช้ --->> https://www.uppic.org/image-D973_5BDE58E9.jpg

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 10:44 am
by snasui
:D กรุณาแนบไฟล์มาที่ฟอรัมนี้ (กฎข้อ 4 ด้านบน :roll:) ครับ

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 11:24 am
by alundc45
snasui wrote: Sun Nov 04, 2018 10:44 am :D กรุณาแนบไฟล์มาที่ฟอรัมนี้ (กฎข้อ 4 ด้านบน :roll:) ครับ
ขอโทษอีกรอบครับผมสำหรับไฟล์แนบตามนี้เลยครับผม

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 12:01 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Sub Test()
    Dim WS As Worksheet
    On Error Resume Next
    For Each WS In Sheets
        If VBA.Right(WS.Name, 2) = "62" Then
            WS.Name = WS.Range("AP3").Value
        End If
    Next WS
End Sub
การเปลี่ยนชื่อชีต จะเปลี่ยนให้ชื่อซ้ำกันไม่ได้ครับ

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 12:59 pm
by alundc45
snasui wrote: Sun Nov 04, 2018 12:01 pm :D ตัวอย่าง Code ครับ

Code: Select all

Sub Test()
    Dim WS As Worksheet
    On Error Resume Next
    For Each WS In Sheets
        If VBA.Right(WS.Name, 2) = "62" Then
            WS.Name = WS.Range("AP3").Value
        End If
    Next WS
End Sub
การเปลี่ยนชื่อชีต จะเปลี่ยนให้ชื่อซ้ำกันไม่ได้ครับ
ขอบคุณสำหรับคำตอบครับ แต่ผมติดปัญหาตามไฟล์นี้ครับ

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 1:07 pm
by snasui
:D ตามภาพที่แนบมาติดปัญหาอะไรกรุณาอธิบายมาในช่องความเห็นนี้ด้วยครับ

นอกจากนี้กรุณาปรับ Code มาเองก่อนเสมอ ติดตรงไหนค่อยถามกันต่อครับ

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 1:20 pm
by alundc45
snasui wrote: Sun Nov 04, 2018 1:07 pm :D ตามภาพที่แนบมาติดปัญหาอะไรกรุณาอธิบายมาในช่องความเห็นนี้ด้วยครับ

นอกจากนี้กรุณาปรับ Code มาเองก่อนเสมอ ติดตรงไหนค่อยถามกันต่อครับ
:flw:
1. ปัญหาคือพอเปลี่ยนข้อความในช่อง AP3 แล้วลองรัน CODE ดู ปรากฏว่า ชื่อ Sheet ไม่ยอมเปลี่ยน (ปี) ตามข้อความในช่อง AP3 ที่ผมกรอกเปลี่ยนปีเข้าไปใหม่ ของทุก Sheet ครับผม
2. ผมได้ทดสอบโดยการเปลี่ยนเป็นข้อความอื่นในช่อง AP3 รัน CODE แล้วชื่อ Sheet ไม่ยอมเปลี่ยนตามครับ
3. ทุกชีต ๆ ผมได้เปลี่ยนช่อง AP3 เป็นเดือนปีทั้งหมดครับ ซึ่งต้องการให้ ชื่อ Sheet เป็นชื่อ เดือน ม.ค62 จน ถึง เดือน ธ.ค62

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 1:31 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
If IsNumeric(VBA.Right(WS.Name, 2)) Then
    WS.Name = WS.Range("AP3").Value
End If
'Other code
ตรง Other code คือ Code เดิมครับ

ส่วนที่ถามมาตามภาพว่าคืออะไร คำตอบคืออักขระ 2 ตัวหลังของชี่อชีตเดิม

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

Re: เปลี่ยนชื่อ Sheet ตาม cell ที่กำหนด [VBA]

Posted: Sun Nov 04, 2018 3:57 pm
by alundc45
snasui wrote: Sun Nov 04, 2018 1:31 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
If IsNumeric(VBA.Right(WS.Name, 2)) Then
    WS.Name = WS.Range("AP3").Value
End If
'Other code
ตรง Other code คือ Code เดิมครับ

ส่วนที่ถามมาตามภาพว่าคืออะไร คำตอบคืออักขระ 2 ตัวหลังของชี่อชีตเดิม

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