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

แนบไฟล์ตัวอย่างมาด้วยครับ
สำหรับการโพสต์ 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

ตัวอย่างการปรับ 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ก็ใช้ได้ครับ
ขอบคุณมากครับ