PDA

View Full Version : ขอคำสั่ง VBA ที่กำหนด Hyperlink แล้วปิดแฟ้มอัตโนมัติครับ



nirundorn
5 Jun 2007, 21:38
รบกวนท่านผู้รู้..ช่วยแนะนำด้วยครับ
ผมเปิดตำราหาคำสั่งนี้ไปหลายเล่มแล้ว ยังไม่พบครับ
พอดีต้องการใช้งานด่วนครับ

สมเกียรติ
6 Jun 2007, 12:18
ที่ถามมาไม่ได้บอกให้ละเอียดว่า ให้คลิกที่ hyperlink แล้วปิดแฟ้มไหน เดาเอาเองว่าต้องการปิดแฟ้มที่มี hyperlink ซึ่งเรื่องนี้คิดว่าไม่มีทางใช้ hyperlink ทำงานแล้วปิดแฟ้มได้ด้วยครับ

ต้องใช้ VBA นั่นแหละ ให้คลิกแล้วไปที่แฟ้มแล้วปิดแฟ้มที่มีรหัส VBA ทิ้งไป


Sub Macro1()
Windows("Book1.xls").Activate
ThisWorkbook.Close
End Sub


ให้เปิดแฟ้มที่แนบมาทั้งคู่ แล้วคลิก link ในแฟ้ม HyperLinkClose.xls เพื่อไปที่ Book1.xls แล้วปิดแฟ้ม HyperLinkClose.xls ทิ้งไป

nirundorn
6 Jun 2007, 15:30
ที่ถามมาไม่ได้บอกให้ละเอียดว่า ให้คลิกที่ hyperlink แล้วปิดแฟ้มไหน เดาเอาเองว่าต้องการปิดแฟ้มที่มี hyperlink ซึ่งเรื่องนี้คิดว่าไม่มีทางใช้ hyperlink ทำงานแล้วปิดแฟ้มได้ด้วยครับ

ต้องใช้ VBA นั่นแหละ ให้คลิกแล้วไปที่แฟ้มแล้วปิดแฟ้มที่มีรหัส VBA ทิ้งไป


Sub Macro1()
Windows("Book1.xls").Activate
ThisWorkbook.Close
End Sub


ให้เปิดแฟ้มที่แนบมาทั้งคู่ แล้วคลิก link ในแฟ้ม HyperLinkClose.xls เพื่อไปที่ Book1.xls แล้วปิดแฟ้ม HyperLinkClose.xls ทิ้งไป

ขอบพระคุณครับอาจารย์ ผมจะลองไปทำตามคำแนะนำครับ

มิตรภาพ
7 Jun 2007, 09:16
ลองดู Private Sub ที่ผมลองเขียน(อันที่จริงเขียนบรรทัดเดียว) ประกอบกับดูที่ Sheet1 ในไฟล์แนบนะครับ

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If ActiveCell.Address(0, 0) = "B13" Then ThisWorkbook.Close
End Sub

ผมใช้วิธีสร้างลิ้งก์ให้ชี้อยู่ภายในชีทงาน ซึ่งปกติเวลาสร้างปุ๊บ ลิ้งก์จะชี้ไปที่ A1 โดยอัตโนมัติ แต่สำหรับลิ้งค์ที่จะใช้ปิดงาน ผมให้ชี้มาที่เซลที่ลิ้งค์อยู่ แล้วใช้การตรวจสอบ Address ของเซลนี้ เพื่อปิดงานจากการคลิกลิ้งค์ครับผม

HyperLink ของ Excel นั้น ต้องระวังอย่างหนึ่งว่า "เป็นการสร้างทั้งเซล" ที่ตัวลิ้งค์นั้นอยู่นะครับ ดังนั้น ไม่ว่าเซลนั้นจะกว้างหรือสูงขนาดใหน การคลิกเข้าไปในเซลนั้นๆ ลิ้งค์จะทำงานเสมอ ถึงแม้ว่าจะไม่ได้ชี้เม้าส์ลงไปตรงๆที่ข้อความก็ตาม แต่จะสังเกตได้ว่า พอเลื่อนเม้าส์เข้าไปในบริเวณเซลนั้นๆ เม้าส์จะเปลี่ยนเป็นรูปมือทันที