snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
NEO889
Member
Posts: 122 Joined: Thu Dec 06, 2012 6:39 pm
Location: นครนายก
#1
Post
by NEO889 » Thu Mar 05, 2015 11:35 am
ผมเขียน VBA เบื้องต้น โดยไม่เงื่อนไขอยู่ว่าให้แสดง UserForm พร้อมกับปิด Workbook โดยให้แสดงเฉพาะ UserForm เท่านั้น แต่เกิดปัญหาเกิดขึ้นก็คือไม่สามารถเข้าไปใน Workbook แก้ไขได้เลยครับ ผมเขียนโค้ดดังนี้
Code: Select all
Private Sub Workbook_Open()
Application.Visible = False
Ai_Menu.Show
End Sub
และ
Code: Select all
Private Sub UserForm_Click()
Application.quit
End Sub
ทำอย่างไงถึงเข้าไปแก้ไขใน Workbook ได้อีกครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Thu Mar 05, 2015 11:47 am
แนบไฟล์ตัวอย่างมาด้วยเพื่อสะดวกในการทดสอบครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Mar 05, 2015 1:23 pm
เปิดโปรแกรม Excel แล้วเข้าเมนู Open > เข้า Folder ที่เก็บไฟล์นี้ > กดแป้น Shift ค้างไว้ก่อนแล้ว Double click เพื่อเปิดไฟล์
NEO889
Member
Posts: 122 Joined: Thu Dec 06, 2012 6:39 pm
Location: นครนายก
#5
Post
by NEO889 » Thu Mar 05, 2015 1:37 pm
ขอบคุณครับ สอบถามอีกเรื่องครับ หากเราต้องการคลิกที่ปุ่ม Cmb แล้วเปิดอีก Form หนึ่งแล้วแล้วอีกฟอร์มที่เปิดอยู่ซ่อนไว้ต้องเขียนคำสั่งอย่างไรครับ
แบบนี้ถูกไหมครับ
Code: Select all
Private Sub cmb_addbudget_Click()
Ai_Budget.Show
AI_Menu.Hide
End Sub
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu Mar 05, 2015 4:12 pm
ลองตามนั้นก็จะทราบว่าถูกหรือไม่ครับ
NEO889
Member
Posts: 122 Joined: Thu Dec 06, 2012 6:39 pm
Location: นครนายก
#7
Post
by NEO889 » Fri Mar 06, 2015 4:13 pm
ผมใช้คำสั่งซ่อน Workbook และแสดง Userform เมื่อทำการเปิดไฟล์ขึ้นมาโดยใช้คำสั่ง
Code: Select all
Private Sub Workbook_Open()
Application.Visible = False
AI_Menu.Show
End Sub
หากผมต้องการคลิกปุ่ม "บันทึกงบประมาณ" จะปรากฎหน้า Userform "Ai_Budget" ขึ้นมา ซึ่งตอนนี้ผมทำได้แค่นี้ครับ
Code: Select all
Private Sub cmb_addbudget_Click()
Me.Hide
Ai_Budget.Show
End Sub
สิ่งที่ผมต้องการเพิ่มคือ เมื่อคลิกที่ cmb_addbudget แล้วจะปรากฏ worksheet "add_Budget" ขึ้นมาพร้อมกับ UserForm "Ai_Budget"
ขอบคุณครับ
Attachments
Dropdownlist_Condition.xlsm
(99.85 KiB) Downloaded 6 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Sat Mar 07, 2015 1:51 pm
ลองเขียน Code ยกเลิกการซ่อน Program Excel แล้วเลือกชีท cmb_addbudget ดูเองก่อน ติดตรงไหนค่อยถามกันต่อครับ
NEO889
Member
Posts: 122 Joined: Thu Dec 06, 2012 6:39 pm
Location: นครนายก
#9
Post
by NEO889 » Mon Mar 09, 2015 10:04 am
สวัสดีครับ
ผมทำตามอย่างที่แนะนำแล้วครับ....แล้วผมจะใช้คำสั่งต่อจากนี้อย่างไรครับเพื่อที่จะไปที่ Worksheet ที่เราต้องการได้
Code: Select all
Private Sub cmb_addbudget_Click()
Me.Hide
Ai_Budget.Show
Sheets("add_Budget").Select >>> ผมลองตัวนี้แล้วยังไม่ได้เหมือนเดิม
End Sub
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Mon Mar 09, 2015 1:54 pm
ที่เขียนมาไม่มีบรรทัดใดที่เป็นการยกเลิกการซ่อนโปรแกรม
บรรทัดที่ทำการซ่อนคือ
Application.Visible = False หากยกเลิกการซ่อนก็ให้เปลี่ยนเป็น
Application.Visible = True จากนั้นค่อยเลือกชีททีต้องการครับ