Page 1 of 2
ลิงค์ข้อมูลข้ามชีท
Posted: Tue Oct 29, 2013 6:06 pm
by มัคกี้เม้า
อยากให้ เซลล์ B1,B2,B3 ลิงค์กับชีทที่ชื่อเหมือนกัน เช่น B1 จะคู่กับชีทชื่อลำไย เป็นต้น โดยเวลาที่คลิกที่ชื่อลำไยอยากให้มันเด้งขึ้นมาเป็นชีทนั้นเลยคะ
ลิงค์ข้ามชีท.xls
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Tue Oct 29, 2013 6:32 pm
by bank9597
มัคกี้เม้า wrote:อยากให้ เซลล์ B1,B2,B3 ลิงค์กับชีทที่ชื่อเหมือนกัน เช่น B1 จะคู่กับชีทชื่อลำไย เป็นต้น โดยเวลาที่คลิกที่ชื่อลำไยอยากให้มันเด้งขึ้นมาเป็นชีทนั้นเลยคะ
ลิงค์ข้ามชีท.xls

ใช้ hyperlink ได้ครับ
คลิ๊กขวาที่เซลล์ต้องการ เลือก hyperlink เลือก pace in this document เลือกชีทที่ต้องการลิงค์ไปหา กด Ok
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Tue Oct 29, 2013 6:43 pm
by มัคกี้เม้า
ขอบคุณคะ คุณแบงค์แต่ว่ามีปัญหาอยู่นะคะว่าถ้าใช้ Hyperlink แล้วจะไม่สามารถดูได้หมดทุกคนยกเว้นเจ้าของเครื่อง อยากให้ทุกคนดูได้เหมือนกันเนื่องจากต้องส่งข้อมูลนี้ทุกเดือนคะ ขอบคุณคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Tue Oct 29, 2013 6:59 pm
by มัคกี้เม้า
มีอีกข้อคะ ไม่ต้องการให้เห็นชีทที่ชื่อลำไยจะซ่อนเอาไว้คะ ให้เห็นแค่ Sheet1 เท่านั้นคะต้องทำอย่างไรคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Tue Oct 29, 2013 7:03 pm
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะ คุณแบงค์แต่ว่ามีปัญหาอยู่นะคะว่าถ้าใช้ Hyperlink แล้วจะไม่สามารถดูได้หมดทุกคนยกเว้นเจ้าของเครื่อง อยากให้ทุกคนดูได้เหมือนกันเนื่องจากต้องส่งข้อมูลนี้ทุกเดือนคะ ขอบคุณคะ

หากเป็นเช่นนั้น ก็ต้องใช้ VBA ครับ สามารถทำได้ไม่ยากครับ
ตัวอย่างโค๊ด เช่น
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
sheets("ลำไย").activate
End If
End Sub
ลองนำไปปรับเองครับ
ส่วนการซ่อนชีทนั้น ก็ต้องใช้ VBA ครับ ยังไงต้องเขียนมาเองก่อนครับ ผมช่วยได้ไม่มากไปกว่านี้ เพราะจะผิดกฏฟอรั่มครับ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 2:57 pm
by มัคกี้เม้า
ขอบคุณคะสำหรับคำแนะนำ แต่ว่าการเขียนโค้ดนั้นความรู้เรื่องนี้น้อยอยู่คะ มีสูตรอะไรที่แทนการเขียนโค้ดหรือไม่คะ เนื่องจากต้องการใช้ด่วนคะ เพราะว่าชีทย่อย ในไฟล์เดียวกันนั้นค่อนข้างเยอะคะ อยากทำหน้าหลักที่ sheet 1 รบกวนด้วยนะคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 3:31 pm
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะสำหรับคำแนะนำ แต่ว่าการเขียนโค้ดนั้นความรู้เรื่องนี้น้อยอยู่คะ มีสูตรอะไรที่แทนการเขียนโค้ดหรือไม่คะ เนื่องจากต้องการใช้ด่วนคะ เพราะว่าชีทย่อย ในไฟล์เดียวกันนั้นค่อนข้างเยอะคะ อยากทำหน้าหลักที่ sheet 1 รบกวนด้วยนะคะ
สำหรับการลิงค์ข้ามไฟลต้องใช้ VBA เท่านั้นครับ สูตรไม่สามารถสั่งงานให้โชว์ชีทได้
คุณต้องเขียนมาเองครับ ผมแนะนำได้เฉพาะโค๊ดตัวอย่าง เช่น
Code: Select all
Sub activateSheet()
'ใส่ชื่อชีทลงไป
Sheets("ลำไย").Activate
End Sub
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 4:18 pm
by มัคกี้เม้า
Sub activateSheet()
Sheets ("Sheet1").select
Sheets("ลำไย").Activate
End Sub
ใช่หรือเปล่าคะ ต้องใส่ชื่อหน้าหลักเข้าไป หรือว่าเป็นชื่อชีทลำไยคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 5:04 pm
by joo
มัคกี้เม้า wrote:มีอีกข้อคะ ไม่ต้องการให้เห็นชีทที่ชื่อลำไยจะซ่อนเอาไว้คะ ให้เห็นแค่ Sheet1 เท่านั้นคะต้องทำอย่างไรคะ

หากต้องการซ่อนซีทลองศึกษาจากลิงค์นี้ดูครับ
http://www.snasui.com/viewtopic.php?f=3&t=1743
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 5:11 pm
by bank9597
มัคกี้เม้า wrote:Sub activateSheet()
Sheets ("Sheet1").select
Sheets("ลำไย").Activate
End Sub
ใช่หรือเปล่าคะ ต้องใส่ชื่อหน้าหลักเข้าไป หรือว่าเป็นชื่อชีทลำไยคะ

เปิดไฟล์ แล้ว กด Alt+F11 จะปรากฏหน้า VBE ขึ้นมา
ไปที่แท็บ Insert > Module
ในช่องว่าง ใส่โค๊ด
Code: Select all
Sub Lumyai()
Sheets("ลำไย").Activate
End Sub
กลับมาที่ Sheet1 ไปที่ Insert > Shapes เลือกช่งสี่เหลี่ยม แล้ววาดสี่เหลี่ยมลงในเซลล์หลังคำว่า ลำไย
คลิีกขวาที่รูปสี่เหลี่ยมที่สร้างขึ้น เลือก Assign Macro > Lumyai >OK
ทดสอบคลิ๊กที่ช่องสี่เหลี่ยม
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 7:16 pm
by snasui
มัคกี้เม้า wrote:ขอบคุณคะ คุณแบงค์แต่ว่ามีปัญหาอยู่นะคะว่าถ้าใช้ Hyperlink แล้วจะไม่สามารถดูได้หมดทุกคนยกเว้นเจ้าของเครื่อง อยากให้ทุกคนดูได้เหมือนกันเนื่องจากต้องส่งข้อมูลนี้ทุกเดือนคะ ขอบคุณคะ

ปกติการ Link ข้ามชีทแบบ Hyperlink ควรจะใช้ได้กับทุกเครื่องครับ
กรณีต้องการใช้สูตรที่ B1 คีย์สูตร
=HYPERLINK("[ลิงค์ข้ามชีท.xls]"&INDEX({"ลำไย";"มะม่วง";"เงาะ"},ROWS(B$1:B1))&"!A1",INDEX({"ลำไย";"มะม่วง";"เงาะ"},ROWS(B$1:B1)))
Enter > Copy ลงด้านล่าง
ส่วนการซ่อนชีทสามารถเข้าเมนู Tools > Options > View > ปลดเครื่องหมายที่ Sheet tab
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 7:38 pm
by มัคกี้เม้า
ทำตามที่แนะนำแล้วคะได้ผลที่ต้องการแล้ว ดีใจมากๆๆๆคะ ขอบคุณนะคะ
ส่วนที่ล็อคชีส ยังงงและสับสนในหน้าที่2 เพราะว่า
จะเลือกทำแบบไหนที่เป็นต้นแบบเอามาประยุกต์คะ
ตรงที่ขึ้นต้นด้วย
Sub SaveToDatastore()
ActiveSheet.Unprotect Password:="240130" '<==UnProtect
Sheets("DataStore").Unprotect Password:="240130"
End If
Sheets("DataStore").Protect Password:="240130" '<==Protect
ActiveSheet.Protect Password:="240130" '<==UnProtect
End Sub
มาประยุกต์เป็นชีทลำไย
Sub SaveToLumyai()
ActiveSheet.Unprotect Password:="240130" '<==UnProtect
Sheets("Lumyai").Unprotect Password:="240130"
End If
Sheets("Lumyai").Protect Password:="240130" '<==Protect
ActiveSheet.Protect Password:="240130" '<==UnProtect
End Sub
จากที่อาจารย์ท่านยกตัวอย่างมาคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 7:46 pm
by snasui

ช่วยโพสต์ Code ให้แสดงเป็น Code จะได้สะดวกต่อการอ่านและการ Copy ไปทดสอบ ดูวิธีการโพสต์ให้แสดงเป็น Code ได้ที่ Link นี้ครับ
viewtopic.php?f=2&t=1187
Code ที่ยกมานั้นไม่น่าจะทำงานถูกต้อง เพราะมี End If แต่ไม่มี If
การจะมี End If ได้ต้องมี If อยู่ก่อนหน้านั้น
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Wed Oct 30, 2013 7:51 pm
by bank9597
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Thu Oct 31, 2013 9:05 am
by มัคกี้เม้า
ช่วยแนะนำด้วยคะเมื่อคืนนอนคิดทั้งคืน คิดไม่ออกเลยคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Thu Oct 31, 2013 11:25 am
by bank9597

ลองดูตามไฟล์แนบครับ ผมปรับและเพิ่มโค๊ดให้แล้ว คิดว่าสามารถนำไปปรับใช้เองได้ ไม่น่าจะยากครับ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Fri Nov 01, 2013 5:28 pm
by มัคกี้เม้า
ขอบคุณคะคุณแบงค์ ในกรณีเครื่องที่เป็นโน๊ตบุ๊คไม่ใช่ โปรแกรม XP เป็น Vistra จะต้องตั้งค่าเครื่องยังไงคะที่จะให้ Macroรันโปรแกรมได้
ตอนนี้ตั้งค่าเครื่องแล้วแตมันไม่ตอบสนองเลยคะเฉพาะ Vistra นะคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Fri Nov 01, 2013 5:34 pm
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะคุณแบงค์ ในกรณีเครื่องที่เป็นโน๊ตบุ๊คไม่ใช่ โปรแกรม XP เป็น Vistra จะต้องตั้งค่าเครื่องยังไงคะที่จะให้ Macroรันโปรแกรมได้
ตอนนี้ตั้งค่าเครื่องแล้วแตมันไม่ตอบสนองเลยคะเฉพาะ Vistra นะคะ

Vista น่าจะสะกดแบบนี้ครับ

หากไฟล์ใช้งานร่วมกันหลายๆเครื่อง ควรมือคู่มือแนบไปด้วยน่ะครับ
ที่ว่ามา น่าจะเกิดจากการไม่เปิดการใช้งาน "มาโคร" ไฟล์ที่มีมาโคร หากเราไม่เปิดการใช้งาน มาโครก็ไม่สามารถทำานได้ครับ ลองดูวิธีเปิดการใช้งานตามลิงค์ด้านล่างครับ
http://portal.edu.chula.ac.th/aboutcomp ... msite=main
http://www.trainer.in.th/forum/index.php?topic=18.0
http://office.microsoft.com/th-th/excel ... 54316.aspx
https://www.google.co.th/#q=%E0%B9%80%E ... 4%E0%B8%A3
ส่วนระบบปฏิบัติการ Vista ไม่สามารถ Run มาโครได้ ผมคิดว่าไม่น่าจะเกี่ยวครับ เพราะมาโครทำงานบนไฟล์ Excel เท่านั้นครับ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Mon Nov 04, 2013 10:38 am
by มัคกี้เม้า
ขอบคุณคะมีเรื่องอยากถาม เกี่ยวกับการปลดล็อคเพื่อเพิ่มชีสเข้าไปแล้วล็อคชีสไว้เหมือนเดิมต้องทำอย่างไรคะ
Re: ลิงค์ข้อมูลข้ามชีท
Posted: Mon Nov 04, 2013 10:45 am
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะมีเรื่องอยากถาม เกี่ยวกับการปลดล็อคเพื่อเพิ่มชีสเข้าไปแล้วล็อคชีสไว้เหมือนเดิมต้องทำอย่างไรคะ

ไปที่เมนู Review แล้วกดที่ protect Workbook โปรแกรมก็จะปลดล็อคให้ เนื่องจากผมไม่ได้ใส่รหัสไว้ จากนั้น เพิ่มชีทที่ต้องการ
เมื่อเพิ่มเสร็จแล้ว ก็กดปุ่ม "กลับหน้าแรก" ในชีทใดชีทหนึ่ง ชีทก็จะถูกซ่อนไปเอง
เหตุที่อาจารย์คนควนให้เราเขียน VBA มาก่อนก็เพราะแบบนี้เอง เนื่องจาก VBA ไม่ได้ทำได้ง่าย เหมือนแค่การวางสูตร แต่มันต้องรู้พื้นฐานพอสมควร หากไม่รู้อะไรเลยก็เท่ากับจะต้องจับมือเขียนเลยทีเดียว ทำเองปรับเองไม่ได้ ดังนั้นหากต้องใช้ VBA จำเป็นต้องศึกษามาก่อนอย่างจริงจัง เพื่อจะได้ปรับแก้ไขได้เองตามความเหมาะสมครับ
