Page 1 of 1

อยากให้ active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1

Posted: Sun Jul 12, 2015 9:41 pm
by apinomon
อยากให้active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1
สมมติว่าไฟล์นี้มีชีท 4 ชีท ชื่อ sheet1, sheet2 ,sheet3 และ sheet4
ถ้าพิมพ์คำว่าsheet2ที่เซลล์ a1 ของ sheet1ก็ไป activeที่ sheet2
ถ้าพิมพ์คำว่าsheet3ที่เซลล์ a1 ของ sheet1ก็ไป activeที่ sheet3
ถ้าพิมพ์คำว่าsheet4ที่เซลล์ a1 ของ sheet1ก็ไป activeที่ sheet4

ขอบคุณครับ

Re: อยากให้ active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1

Posted: Mon Jul 13, 2015 3:50 am
by apinomon
ผมทำได้แล้วครับ ตามนี้ครับ
Sub SelectSheet()
Dim sh As String
On Error Resume Next
sh = Format(Sheets("Sheet1").Range("A1").Value)
Sheets(sh).Activate
End Sub

ผมขอสอบถามเพิ่มเติมครับ
ถ้ามีชื่อชีทเป็นเดือนปี เช่น Jan15 แล้วพิมพ์ที่เซลล์ A1 ของชีทSheet1 เป็น 1/1/2015 แล้วฟอร์แมทให้อยู่ในรูป mmmyy ซึ่งจะเท่ากับ Jan15 แต่พอรันแล้วไม่เกิดอะไรขึ้นครบ หรือใช้ =today()แล้วฟอร์แมทให้อยู่ในรูป mmmyy ก็ไม่ได้เช่นกันครับ
รบกวนช่วยชีแนะด้วยครับ

ขอบคุณมากครับ

Re: อยากให้ active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1

Posted: Mon Jul 13, 2015 10:50 am
by snasui
:D แนบไฟล์ตัวอย่างมาด้วยครับ

สำหรับการโพสต์ Code ในช่องความเห็นนี้ควรโพสต์ให้แสดงเป็น Code ดูตัวอย่างได้จาก link นี้ครับ viewtopic.php?f=6&t=1187

Re: อยากให้ active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1

Posted: Mon Jul 13, 2015 5:18 pm
by apinomon
ผมได้แนบไฟล์ตัวอย่างมาแล้ว ชื่อไฟล์ BOOK1 ครับ โดยให้ระบุชื่อชีทที่ต้องการให้ Active ที่ เซลล์ A1 และ A3 ของชีทชื่อ Sheet1 และทำปุ่มเพื่อให้คลิก RUN คำสั่ง ครับ
ที่เซลล์ A1 ผมยกตัวอย่างการระบุชื่อชีท เช่น A และ B อันนี้ทำได้
แต่ที่เซลล์ A1 ผมยกตัวอย่างการระบุชื่อชีท เป็น 1/1/2015 แล้วฟอร์แมทให้อยู่ในรูป mmmyy ซึ่งจะเท่ากับ Jan15 และ Feb15 อันนี้ไม่Active ตามคำสั่งครับ

โพสต์ Code ใหม่ตามตัวอย่างรูปแบบการโพสครับ

Code: Select all

Sub SelectSheet()
Dim sh As String
On Error Resume Next
sh = Format(Sheets("Sheet1").Range("A1").Value)
Sheets(sh).Activate
End Sub
ขอบคุณครับ

Re: อยากให้ active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1

Posted: Mon Jul 13, 2015 8:04 pm
by snasui
:D ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Sub SelectSheet2()
    Dim sh As String
    On Error Resume Next
    sh = Application.Text(Sheets("Sheet1").Range("A3").Value, "[$- ]mmmyy")
    Sheets(sh).Activate
End Sub

Re: อยากให้ active work sheet ตาม ค่า ใน เซลล์ a1 ของsheet 1

Posted: Tue Jul 14, 2015 8:29 am
by apinomon
การปรับ Code ตามแล้ว
ใช้ได้เลยครับ
รวมทั้งฟังก์TODAYก็ใช้ได้ครับ

ขอบคุณมากครับ