Page 1 of 1

Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Fri Mar 09, 2018 4:22 pm
by March201711
ใน sheet แต่ละ sheet มี ปุ่มกดให้ไปที่จุดตั้งต้น เช่น ถ้า sheet เดือน Feb กดปุ่มสีฟ้า จะกลับไปที่ sheet Jan
จะมีวิธีเขียน code vba อย่างไรคะ เพราะ ปุ่มกดมีเป็น 50 กว่า ปุ่ม ต้องมาเปลี่ยนทุกเดือน ไปที่ edit hyperlink ทำให้เสียเวลามากค่ะ

Code: Select all

    Sheets("Feb").Select
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    Range("H6").Select

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Fri Mar 09, 2018 4:25 pm
by March201711
เอกสารแนบค่ะ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Fri Mar 09, 2018 7:01 pm
by snasui
:D แนบไฟล์ที่มีนามสกุลเป็น .xlsm ซึ่งมี Code ในความเห็น #1 อยู่ด้วยจะได้สะดวกต่อการทดสอบครับ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 11:01 am
by March201711
ถ้าไม่ใช้เป็น code vba จะมีวิธีอื่นไหมค่ะ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 11:08 am
by snasui
March201711 wrote: Fri Mar 09, 2018 4:22 pm ใน sheet แต่ละ sheet มี ปุ่มกดให้ไปที่จุดตั้งต้น เช่น ถ้า sheet เดือน Feb กดปุ่มสีฟ้า จะกลับไปที่ sheet Jan
จะมีวิธีเขียน code vba อย่างไรคะ เพราะ ปุ่มกดมีเป็น 50 กว่า ปุ่ม ต้องมาเปลี่ยนทุกเดือน ไปที่ edit hyperlink ทำให้เสียเวลามากค่ะ

Code: Select all

    Sheets("Feb").Select
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 10")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = ""
    Range("H6").Select
:D ในไฟล์แนบไม่พบว่ามี Code ครับ ที่อธิบายมายังไม่กระจ่าง ช่วยแจ้งมาว่าปุ่มสีฟ้าอยู่ตำแหน่งใด ได้กำหนด Code ไว้อย่างไร ควรระบุให้เข้าถึงวัตถุ ชีต เซลล์ ที่มีอยู่จริงครับ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 11:22 am
by March201711
แก้ไขfileให้ใหม่แล้วค่ะ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 11:49 am
by snasui
:D ช่วยสรุปอีกทีว่าต้องการจะทำอะไรครับ

แจ้งมาว่าต้องการคลิกปุ่มไหน แล้วต้องการให้แสดงผลอย่างไร

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 11:56 am
by March201711
ต้องดารให้กดปุ่มสีฟ่าค่ะ แล้วไปcheck ที่ sheet mar จากนั้นไปclickที่ปุ่ม A10 สีส้ม ดูว่า hyperlink ไปที่ cell A10 sheet mar หรือไม่
แต่เท่าที่ทำแล้ว มันวิ่งที่ sheet jan cell A10 ค่ะ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 12:45 pm
by snasui
:D ไม่ทราบว่าสร้าง Object ต่าง ๆ ด้วยวิธีใดถึงกลายเป็นชื่อเดียวกันไปได้ ปกติแล้ว Object แม้จะเป็นชนิดเดียวกันก็จะได้ชื่อที่ต่างกันครับ

วิธีการแก้ไขให้ลบ Object ทิ้งทั้งหมดแล้วแล้วสร้างขึ้นมาใหม่ระบุ Range ให้กับ Object เช่นเดิม เมื่อสร้างใหม่จะต้องได้ชื่อทีต่างกัน สังเกตโดยการกดแป้น Ctrl+Click ที่ Object นั้นๆ แล้วสังเกตที่ Name Box (ช่องซ้ายสุดของ Formula Bar)

หลังจากสร้าง Object แต่ละชีตครบตามต้องการแล้วให้ Assign Macro ให้กับ Object แต่ละอันไปยัง Sub ที่ชื่อ GotoCell ตามด้านล่าง ครับ

Code: Select all

Sub GotoCell()
    Dim obj As String
    On Error Resume Next
    obj = Application.Caller
    If InStr(obj, "Rounded") Then
        Range(ActiveSheet.Shapes(obj).DrawingObject.Caption).Select
    End If
End Sub

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 3:12 pm
by March201711
ทำตามที่อาจารย์แนะนำแล้วค่ะ แต่sheet แต่ละ sheet แต่ละเดือนไม่ไปตาม cell ในแต่ละ object เลยค่ะ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 3:30 pm
by snasui
:D เขียนคำว่า Rounded ให้ตรงตามตัวอักษรที่ผมแจ้งไป ตัวใหญ่ตัวเล็กถือว่ามีความแตกต่างกันครับ

Re: Edit hyperlink ให้เปลี่ยนตามเดือน

Posted: Sat Mar 10, 2018 4:06 pm
by March201711
ทำได้แล้วค่ะ ไม่คิดว่า คำแต่ละมีความเฉพาะของcode มากค่ะ ขอบคุณมากค่ะอาจารย์ :D