PDA

View Full Version : เลือก Custom Views โดย VBA



MusicAholic
22 Aug 2012, 18:07
ผมต้องการให้ User เลือกรหัสพนักงานของตนเอง
แล้วก็จะแสดงหน้า Custom Views ที่ตั้งเป็นเลขรหัสของพนักงานแต่ละคนไว้ครับ
โดยที่ User ไม่ต้องเลือกจาก Menubar
แต่ติดปัญหาตรงที่ผมไม่สามารถนำ Range Name ที่ตั้งเป็นเซลล์รับค่าของรหัสมาแทนใน code ได้ครับ

ActiveWorkbook.CustomViews "[YourID]".Show

อรวีร์
22 Aug 2012, 18:26
ลองแบบนี้ค่ะ ว่าได้ไหม(อรวีร์ก็ไม่เคยใช้ CustomViews)
ActiveWorkbook.CustomViews(Range("YourID")).Show

อรวีร์
22 Aug 2012, 18:30
หรือแบบนี้ค่ะ
ActiveWorkbook.CustomViews([YourID]).Show

MusicAholic
23 Aug 2012, 00:36
ถ้าใช้ Range Name ยังทำไม่ได้ครับ
แต่ถ้าใช้ค่าในเซลล์โดยตรงกลับทำได้ครับ

ActiveWorkbook.CustomViews(Range("B2").Value).Show

อรวีร์
23 Aug 2012, 07:11
ลอง Msgbox Range("YourID").Count
ดูหน่อยค่ะว่าได้เลข 1 หรือไม่คะ

และลอง
Msgbox Range("YourID").Address
ดูว่าอ้างถึง Cells ไหนคะ

สมเกียรติ
23 Aug 2012, 09:50
ใช้รหัสตามนี้ครับ

Sub ViewShow()
MyVar = [ViewKey]
ActiveWorkbook.CustomViews(MyVar).Show
End Sub

ViewKey เป็นชื่อเซลล์ที่ใช้กรอกรหัส

MusicAholic
23 Aug 2012, 10:28
Msgbox Range("YourID").Count เท่ากับ 1 ครับ
Msgbox Range("YourID").Address เท่ากับ $B$2

Private Sub Workbook_Open()
[YourID] = Application.InputBox("Your ID", "Authority Only", [YourID], , , , , 3)
ActiveWorkbook.CustomViews([YourID]).Show
End Sub

ผมใช้ code นี้อยู่ครับ แต่ถ้ารหัสเป็นตัวเลข สามารถทำงานได้
แต่ถ้าเป็นตัวอักษรยังติด error อยู่ครับ

MusicAholic
23 Aug 2012, 10:47
ทำได้แล้วครับ ผมยกเลิกใช้ InputBox แล้วหันมาใช้ sheet จำลองเป็นหน้าลงทะเบียนแทนครับ
ขอบคุณ คุณอรวีร์ และอาจารย์สมเกียรติมากครับ :redface: