snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#1
Post
by mr.zatan » Thu Dec 12, 2013 5:29 pm
- ที่ B2 ทำเป็น drop down list เช่น เมื่อเลือกชื่อ นาย A >> ข้อมูลของนาย A ก็จะมาแสดงที่ด้านล่าง
- ที่ C2 ทำเป็นปุ่ม Print ( Print เฉพาะของนาย A)
- ที่ D2 ทำเป็นปุ่ม Print All ( Print ทั้งหมด ) / นาย A นาย C นาย D.....
ขอบคุณครับ..
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Thu Dec 12, 2013 10:01 pm
ตามความต้องการนี้ต้องใช้ VBA ให้เขียนมาก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน หากเขียนมาแล้วให้แจ้งว่า Procedure ชื่ออะไร ติดขัดที่บรรทัดใด จะได้เข้าถึงปัญหาได้โดยไวครับ
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#3
Post
by mr.zatan » Thu Dec 12, 2013 10:24 pm
เจอปัญหาแล้วครับ ... Macros ผมไม่ขึ้นครับ
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Dec 12, 2013 10:28 pm
เข้าเมนู Developer แล้วดูว่าเมนู Record Macro ใช้การได้หรือไม่ครับ
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#5
Post
by mr.zatan » Thu Dec 12, 2013 10:33 pm
ไม่ขึ้นครับ จางๆๆ... รึว่า Excel ผมมีปัญหา
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu Dec 12, 2013 11:05 pm
ลองปิดไฟล์นี้ไปก่อนแล้วเปิดไฟล์ใหม่ (กดแป้น Ctrl+N) สังเกตว่าเมนูเป็นเช่นเดิมหรือไม่ครับ
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#7
Post
by mr.zatan » Thu Dec 12, 2013 11:59 pm
Excel 2003 ทำ drop down list ข้าม Sheet ไม่ได้เหรอครับ
ทำบน 2010 ทำได้ แต่ 2003 กลับไม่ได้
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Fri Dec 13, 2013 12:08 am
Excel Version ใดก็ทำ Drowdown ข้ามชีทได้ครับ เพียงแต่ต้องให้ชื่อกับช่วงข้อมูลที่ต้องการนำมาทำ Dropdown
สำหรับ Excel 2010+ จะเพิ่มความสามารถมาให้โดยไม่ต้องให้ชื่อกับช่วงข้อมูลก่อนก็สามารถนำมาทำ Dropdown ได้ครับ
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#9
Post
by mr.zatan » Fri Dec 13, 2013 9:56 am
นี่ครับมันขึ้นอย่างงี้...
=Paste1!$B$7:$B$24
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#10
Post
by mr.zatan » Fri Dec 13, 2013 11:09 am
ได้แล้วครับ.
ใช้ INDIRECT("Paste1!$B$5:$B$8")
______________________________________
ตอนนี้ก็เหลือ ปุ่ม Print
Code ที่ผมใช้
Code: Select all
Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets("Print").Visible = True
Sheets("Print").Select
ActiveSheet.PageSetup.PrintArea = "$A$3:$L$24"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
Sheets("Print").Visible = True
Application.ScreenUpdating = True
End Sub
ปัญหาคือ Print ได้แค่คนเดียว คือผมอยากให้ Print ทั้งหมดเลย มี 5 คนก็ Print ทั้ง5 คน
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#11
Post
by snasui » Fri Dec 13, 2013 12:38 pm
5 คนที่ว่านั้นมีลักษณะข้อมูลเป็นอย่างไรครับ
Code ที่เขียนมาเองแล้วนั้นบรรทัดไหนที่ระบุว่าเลือก 5 คน (หรือจำนวนอื่น ๆ) แล้วครับ
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#12
Post
by mr.zatan » Fri Dec 13, 2013 1:03 pm
ไม่เป็นไรครับ ได้แล้วครับ..
Code: Select all
Sub Print_List()
Dim strValidationRange As String
Dim rngValidation As Range
Dim rngDepartment As Range
Application.ScreenUpdating = False
strValidationRange = Range("n4").Validation.Formula1
Set rngValidation = Range(strValidationRange)
For Each rngDepartment In rngValidation.Cells
Range("n4").Value = rngDepartment.Value
ActiveSheet.PrintOut
Next
Application.ScreenUpdating = True
End Sub
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#13
Post
by mr.zatan » Fri Dec 13, 2013 1:11 pm
แล้วก็คือผมอยากจะให้ เวลาเอา Mouse ไปวางบน Drop down แล้วให้โชวขึ้นมาเลย โดยไม่ต้องกด ลูกศรชี้ลง อย่างี้สามารถทำได้มัย
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Fri Dec 13, 2013 1:14 pm
Excel ไม่มี Event สำหรับ MouseMove, MouseUp, MouseDown ฯลฯ ดังนั้นจึงไม่สามารถทำได้บน Worksheet แต่ทำได้บน UserForm ครับ
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#15
Post
by mr.zatan » Sat Dec 14, 2013 10:50 am
แก้สูตรให้หน่อยครับ
INDIRECT("Paste1!$B$5:$B$8") อันนี้คือ เริ่มตั้งแต่ B5 ถึง B8
แต่ที่ผมอยากได้คือ :
- เริ่มตั้งแต่ B5 ไปเรื่อยๆๆ
- และก็โชว์เฉพาะที่มีรายชื่อ
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Sat Dec 14, 2013 11:06 am
ลองปรับสูตรเป็นตามด้านล่างครับ
=Indirect("Paste1!B5:B"&Counta(Paste1!B5:B65536)+5)
mr.zatan
Bronze
Posts: 305 Joined: Sun Sep 05, 2010 8:31 am
Excel Ver: 2016
Contact:
#17
Post
by mr.zatan » Sat Dec 14, 2013 11:32 am
ขอบคุณครับ