Page 1 of 1

ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Fri Oct 30, 2015 11:45 am
by imomotaro
ผมมีไฟล์ 2 ไฟล์ ไฟล์แรก ทำปุ่มมาโครไว้คลิกเพื่อปลดล็อครหัส อีกไฟล์หนึ่ง แต่ผมอยากให้มันไม่ต้องการให้ขึ้นพิมพ์ Password ผมจะแก้โค๊ด ยังไงครับ ไม่รู้เรื่องเลย ลองแกะโค๊ดมา ตั้ง Password ไว้ "1234" รบกวนหน่อยครับ

Code: Select all

Sub UnProtected()
    Dim FileName, FileDir, FileSearch As String
 
    FileDir = "D:\Ex\Ex1.xlsx" '
    FileName = Dir(FileDir)
        Workbooks.Open FileName:=FileDir
        Workbooks(FileName).Unprotect "1234"
End Sub


Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Fri Oct 30, 2015 5:59 pm
by DhitiBank
ลองปรับตรงปลดล็อคชีทเป็นแบบนี้ดูครับ

Code: Select all

Workbooks(FileName).Unprotect Password:="1234"

Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Sat Oct 31, 2015 11:02 am
by imomotaro
ขอบคุณครับ แต่ยังขึ้นให้ใส่ Password อยู่ครับ

Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Sat Oct 31, 2015 11:28 am
by snasui
:D ปรับ Code จาก Workbooks.Open FileName:=FileDir เป็น Workbooks.Open FileName:=FileDir, Password:="1234" ครับ

ตัวอย่าง

Code: Select all

Sub UnProtected()
    Workbooks.Open FileName:="D:\Ex\Ex1.xlsx", Password:="1234"
End Sub

Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Sat Oct 31, 2015 3:43 pm
by imomotaro
snasui wrote::D ปรับ Code จาก Workbooks.Open FileName:=FileDir เป็น Workbooks.Open FileName:=FileDir, Password:="1234" ครับ

ตัวอย่าง

Code: Select all

Sub UnProtected()
    Workbooks.Open FileName:="D:\Ex\Ex1.xlsx", Password:="1234"
End Sub
ผมลองพอดีใส่ WriteResPassword เข้าได้เลยครับ ขอบคุณมากครับ

Code: Select all

Sub UnProtected()
	Workbooks.Open FileName:="D:\Ex\Ex1.xlsx", Password:="1234", WriteResPassword:="1234"
End Sub

Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Sat Oct 31, 2015 3:56 pm
by imomotaro
รบกวนอีกเรื่องครับ มีโค๊ดดึงข้อมูลข้าม Workbook แต่ Workbook ติด Password

Code: Select all

Sub sbADO()
Dim sSQLQry As String
Dim ReturnArray

Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset

Dim DBPath As String, sconnect As String

DBPath = "D:\Ex\Ex1.xlsx"

sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
        
Conn.Open sconnect
    sSQLSting = "SELECT * From [DataSheet$]"
    mrs.Open sSQLSting, Conn
        Worksheets("Sheet1").Range("A2").CopyFromRecordset mrs
    mrs.Close
Conn.Close

End Sub
ถ้าจะนำโค๊ดนี้มาประยุกต์ใช้อย่างไรดีครับ

Code: Select all

Sub UnProtected()
   Workbooks.Open FileName:="D:\Ex\Ex1.xlsx", Password:="1234", WriteResPassword:="1234"
End Sub

Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Sat Oct 31, 2015 4:55 pm
by snasui
:D Code ที่เขียนมาล่าสุดเป็นการดึงข้อมูลโดยไม่จำเป็นต้องเปิดไฟล์ ในกรณีหากมีการป้องกันไว้ไม่สามารถ Access ได้ด้วย Connection String ส่วน Code ก่อนหน้าจะต้องเปิดไฟล์ขึ้นมาก่อนเพื่อที่จะใส่ Password ปลดการ Lock

การทำงานกับไฟล์ที่มีการ Lock ให้เขียนเปิดไฟล์ขึ้นมาก่อนแล้วใส่ Password ที่ถูกต้องแล้วค่อยทำงานตามต้องการแล้วค่อยปิดไฟล์ครับ

Re: ใช้ Macro unprotect workbook แบบไม่ต้องใส่ Password

Posted: Mon Nov 02, 2015 8:33 am
by imomotaro
ขอบคุณมากครับ :D