:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

input Password UnProtect Sheet

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

input Password UnProtect Sheet

#1

Post by yodpao.b »

คลิก cancel ต้องการให้อยู่หน้าเดิม ครับ

Code: Select all

Private Sub Image1_Click()
Dim myValue As Variant
myValue = InputBox("Give me some input Password UnProtect Sheet", "Password UnProtect Sheet")

ActiveSheet.Unprotect Password:=myValue
Sheets("Database").Select

End Sub
จากสูตร เมื่อใส่ Password แล้ว คลิก ok cold สั่งให้ไปหน้า Database ถูกต้อง
แต่ถ้าคลิก cancel ก็ยังไปหน้า Database ผิด ครับ
ต้องการให้อยู่หน้าเดิม ครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: input Password UnProtect Sheet

#2

Post by puriwutpokin »

ตัวอย่างโค้ดครัล

Code: Select all

Private Sub Image1_Click()
Dim myValue As Variant
myValue = InputBox("Give me some input Password UnProtect Sheet", "Password UnProtect Sheet")
If myValue = "" Then
Exit Sub
Else
ActiveSheet.Unprotect Password:=myValue
Sheets("Database").Select
End If
End Sub
:shock: :roll: :D
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: input Password UnProtect Sheet

#3

Post by yodpao.b »

ขอบคุณครับ

จาก code มีคำถามเพิ่ม 2 ข้อครับ
1. Exit Sub ไฟล์นี้ผมใช้เยอะมากเลย แต่ไม่เคยใช้กับ Else ไม่นึกว่าจะใช้กันได้
ที่ผมเข้าใจนึกว่า Exit Sub ให้ออกจาก sub ไปเลย code อะไรที่อยู่บรรทัดล่างไม่ต้องทำ
แต่สำหรับ code ที่ได้นี้บรรทัดล่างก็ทำ
คำถาม ผมเข้าใจผิดใช่ไหมครับที่ว่าบรรทัด ถัดจาก Exit Sub ไม่ต้องทำ

2.ผมลองเอา Exit Sub

Code: Select all

Dim myValue As Variant
myValue = InputBox("Give me some input Password UnProtect Sheet", "Password UnProtect Sheet")
If myValue = "" Then

Else
ActiveSheet.Unprotect Password:=myValue
Sheets("Database").Select
End If
เมื่อเอา Exit Sub ออก ลองทำแล้ว ผลเหมือนกัน กับมี Exit Sub เลย(ผมอาจจะทดลองไม่ครอบคุม จึงไม่แนใจถึงผลลัพธ์ที่ออกมา)
คำถาม ถูกต้องไหมครับ จาก code "Exit Sub" ไม่มีความจำเป็น
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: input Password UnProtect Sheet

#4

Post by snasui »

yodpao.b wrote: Thu Jun 11, 2020 6:26 pm ที่ผมเข้าใจนึกว่า Exit Sub ให้ออกจาก sub ไปเลย code อะไรที่อยู่บรรทัดล่างไม่ต้องทำ
:D เข้าใจถูกแล้วและต้องเป็นเช่นนั้นครับ
yodpao.b wrote: Thu Jun 11, 2020 6:26 pm แต่สำหรับ code ที่ได้นี้บรรทัดล่างก็ทำ
Code จะรันต่อหากไม่เข้าเงื่อนไขของการดักให้ Exit Sub เมื่อใดที่ Exit Sub แล้วจะไม่มีทางทำต่ออย่างแน่นอน ควรติดตาม Code ด้วยการ Debug ทีละบรรทัด ผมเคยแนะนำไปบ่อยครั้ง กรุณาทำด้วยครับ

หาก Debug แล้วพบว่า Code รันมาถึง Exit Sub แล้วแต่ยัง Run ต่อในบรรทัดล่าง ๆ อีก (ซึ่งตามหลักการแล้วไม่มีโอกาสที่จะเป็นไปได้) จึงควรนำมาถามกันต่อครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: input Password UnProtect Sheet

#5

Post by puriwutpokin »

ปรับให้ สั้นแบบนี้ก็ได้ครับ :D

Code: Select all

Private Sub Image1_Click()
Dim myValue As Variant
myValue = InputBox("Give me some input Password UnProtect Sheet", "Password UnProtect Sheet")
If myValue = "" Then Exit Sub
ActiveSheet.Unprotect Password:=myValue
Sheets("Database").Select
End Sub
:shock: :roll: :D
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: input Password UnProtect Sheet

#6

Post by yodpao.b »

ขอบคุณมากครับ
สำหรับคำตอบในคำถามที่ผมถาม
และ code ที่ได้


ต้องขอโทษจริงๆ ครับ ใส่ความต้องการผิด คือเข้าใจขั้นตอนผิดไป
คงง่วงนะครับไม่ได้นอน เลยดูไม่ถี่ถ้วน

ดูสิ่งที่ขอใหม่ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: input Password UnProtect Sheet

#7

Post by yodpao.b »

0.JPG

Password คือ 0
ต้องการ ใส่ Password ในช่อง input
1.ถ้าในช่อง input ไม่มีค่าใดๆ ไม่ว่าจะคลิก ok หรือ cancel ให้อยู่ sheet1
2.ถ้าในช่อง input มีค่าใดๆ ที่ไม่ใช่ Password(0) ไม่ว่าจะคลิก ok หรือ cancel ให้อยู่ sheet1
3.ถ้าในช่อง input มีค่า Password คือ "0" คลิก cancel ให้อยู่ sheet1
4.ถ้าในช่อง input มีค่า Password คือ "0" คลิก ok ให้อยู่ sheet2 แล้วให้ทำการ Unprotect sheet2

รอบกวนด้วยครับ แก้ปัญหา มา 3 ชั่วโมงแล้วครับ ได้เต็มที่ ที่ code "Sub Macro5"
code "Sub Macro5" ติดปัญหาที่ ข้อ 2 ครับ
2.ถ้าในช่อง input มีค่าใดๆ ที่ไม่ใช่ Password(0) ไม่ว่าจะคลิก ok หรือ cancel ให้อยู่ sheet1
จาก code ใส่ค่า "1" เมื่อคลิก ok code สั่งให้แก้ Unprotect sheet2 แล้วไป sheet2
ซึ่งผิด ครับ มันต้องอยู่ sheet1 เพราะ Password ไม่ใช่

code ที่ใช้อยู่

Code: Select all

Sub Macro5()
On Error Resume Next
Dim myValue As Variant
myValue = InputBox("Give me some input Password UnProtect Sheet", "Password UnProtect Sheet")
If myValue <> "" Then
Sheets("Sheet2").Unprotect Password:=myValue
Sheets("Sheet2").Select
Else
Sheets("Sheet1").Select
End If
End Sub
You do not have the required permissions to view the files attached to this post.
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: input Password UnProtect Sheet

#8

Post by yodpao.b »

ต้องขอโทษอีกที่ครับ

หลังจากพิจรณาที่เขียนปัญหาลงไป ดูที่ละบรรทัด
จึงเห็นว่า code ที่ได้มานั้นถูกต้องแล้ว เปลี่ยนตรงข้อแม้เท่านั้น
ที่ข้อแม้มองผิดไป
ต้องขอขอบคุณผู้ที่ให้ แนะนำ code ด้วยครับ
แสดงผลได้ตามต้องการทุกเงื่อนไขแล้วครับ

ทั้งนี้ในความหมายของ Exit Sub ที่ท่านอาจารย์ได้อธิบายมาก็เข้าใจเช่นกันครับ

code ดังนี้

Code: Select all

Sub Macro10()

Dim myValue As Variant
myValue = InputBox("Give me some input Password UnProtect Sheet", "Password UnProtect Sheet")
If myValue <> 0 Then Exit Sub
Sheets("Sheet2").Unprotect Password:=myValue
Sheets("Sheet2").Select

End Sub
Post Reply