Page 1 of 1

เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Sun Oct 08, 2017 9:27 am
by myhomer99
เรียนอาจารย์ทุกท่าน
ถ้าผมเปลี่ยนชื่อที่ cell a1 a2 a3 ที่กำหนดแล้วทำให้ชื่อ sheet1 2 3 เปลี่ยนชื่อตามต้องทำอย่างไรครับ
(ขออนุญาติอ้างอิงตาม post ของคุณ@pisit "เปลี่ยนชื่อ Sheet แล้วให้เปลี่ยนชื่อตาม") แต่ที่ต้องการจะกลับด้านกันครับ
ขอบคุณครับ

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Sun Oct 08, 2017 9:48 am
by snasui
:D การทำเช่นนั้นต้องทำผ่านการเขียนโปรแกรมด้วย VBA ครับ

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

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Sun Oct 08, 2017 4:42 pm
by myhomer99
เรียนอาจารย์สุนัย
ผมทราบว่ามันเป็นการผิดกฎครับ
แต่ต้องขอโทษด้วยเพราะผมเขียน VBA ไม่เป็นจริงๆ
ถ้าเป็นไปได้ คงจะต้องขอรบกวนด้วยนะครับ
ขอบคุณครับ

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Sun Oct 08, 2017 4:49 pm
by snasui
:D ชื่อผมคือ "สันติพงศ์" ครับ

ต้องขออภัยครับ กฎนั้นผมเขียนขึ้นมาเองกับมือ จึงเป็นไปไม่ได้ที่ผมจะยกเว้นให้กับสมาชิกท่านใดท่านหนึ่งครับ

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Sun Oct 08, 2017 5:02 pm
by myhomer99
ไม่เป็นไรครับอาจารย์ เพราะมีประโยชน์อีกมากมายจากที่นี่ ที่ผมได้รับ และมีแต่ความรู้สึกดีๆครับ
***ต้องขอโทษด้วยที่ทักชื่อผิดครับ***

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Tue Oct 17, 2017 1:24 pm
by myhomer99
ผมลองหัดทำแล้วครับ แต่เท่าที่ได้มาเป็นแบบด้านล่าง

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value <> "" Then
ActiveSheet.Name = Range("A1").Value
End If
End Sub

แต่ปัญหาก็คือมันเปลี่ยนชื่อชีตเฉพาะชีตน้ันเท่าน้ัน
แต่ความต้องการหลักอยากจะให้พอมีการเปลี่ยนที่ sheet master แล้วชื่อ sheet ของตัวอื่นทีเตรียมไว้เปลี่ยนตามครับ
รบกวนแนะนำด้วยครับ
ขอบคุณครับ

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Tue Oct 17, 2017 7:55 pm
by puriwutpokin
ลองปรับตามนี้ครับ และคอลัมน์ A ต้องแก้วันที่่ ให้เป็น Text ก่อนครับ
เพราะจากไฟล์ ที่แสดง เป็น ม.ค.-17 มันเป็นค่า Date ซึ่งจะมีเครื่องหมาย "/"
ซึ่งใช้ตั้งชื่อชีทไม่ได้ครับ แล้ว สร้างโมดูลใส่คำสั่งนี้แทนใส่ที่ Sheet

Code: Select all

Sub Test()
    Dim i As Long
    Dim r As Range
    With Worksheets("Master")
        Set r = .Range("A1", .Range("A100").End(xlUp))
    End With
    For i = 2 To Sheets.Count
            Sheets(i).Name = r.Cells(i - 1, 1).Value
    Next i
End Sub

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Tue Oct 17, 2017 8:39 pm
by kio2002
ต้องเอาชีท master เรียงอยู่ซ้ายสุดนะครับ จากที่ลองใช้ code ดู

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Wed Oct 18, 2017 11:42 am
by eyepop99
จากที่ผมทดลอง code ทำงานได้ดีครับ
**แต่ว่า ชื่อชีตต้นทางต้องเปลี่ยนtype เป็นtext นะคับ
ชื่อชีตห้ามมี : / \ ครับจากเบื่องต้นมี error เนื่องจากชื่อชีตที่คุณใช้เป็น type อื่นพอจะหยิบชื่อมาตั้งสูตรจึง error นะครับ
ปล.สูตรสามารถเรียงได้ถูกต้องตามต้องการเลยคับ

Re: เปลี่ยนชื่อที่ cell แล้วทำให้ชื่อsheet เปลี่ยนชื่อตาม

Posted: Sat Oct 21, 2017 6:25 pm
by myhomer99
ทำได้แล้วครับ ขอบคุณอาจารย์ทุกท่านครับ