Page 1 of 1

VB สำหรับ paste data ลงใน database แต่ว่าชี้ต protect

Posted: Tue Feb 05, 2013 9:58 am
by godman
สวัสดีครับ
ผมมีปัญหามาถามครับ คือ ผมอยากจะ paste data ข้ามชี้ต โดยนำข้อมูลจากฟอร์มไปเก็บใน database แต่ความต้องการของผมมีมากกว่านั้นคือ อยากจะ protect ชี้ต database ไว้ไม่ให้ user ปัจจุบันเข้ามาแก้ไขได้ เพราะว่าจะสงวนไว้ให้อีกฝ่ายเข้ามาแก้ไขเท่านั้น แต่ปัญหาคือ โค้ดไม่ทำงานในกรณีชี้ตปลายทางโดน protect ไว้ขึ้น error ตรงrTarget.PasteSpecial xlPasteValues สีเหลือง ผมเลยคิดว่าเกิดจากไม่ support สำหรับชี้ตที่ถูก protect ไว้ใช่ไหมครับ และผมควรเพิ่มโค้ดตรงใหนเพื่อจะให้สามารถวางข้อมูล
ได้ตามปกติแม้ว่าจะเป็นชี้ต protect ไว้ก็ตาม ขอบคุณครับ อ้อ password คือ 1234 ครับ

Code: Select all

Option Explicit

Sub PasteData()
Dim i As Integer
Dim rSource As Range
Dim rTarget As Range
i = Worksheets("Form").Range("D6").Value
With Worksheets("Template")
    Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
End With
With Worksheets("Database")
    Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
End With
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = False
MsgBox "Paste Finish"
Worksheets("PivotReport").PivotTables("PivotTable1"). _
    PivotCache.Refresh
End Sub

Re: VB สำหรับ paste data ลงใน database แต่ว่าชี้ต protect

Posted: Tue Feb 05, 2013 10:34 am
by niwat2811
ลองแบบนี้ดูว่าตรงกับความต้องการไหมครับ

Code: Select all

Sub PasteData()
Dim i As Integer
Dim rSource As Range
Dim rTarget As Range
i = Worksheets("Form").Range("D6").Value
With Worksheets("Template")
    Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
End With
With Worksheets("Database")
    Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
End With
Application.ScreenUpdating = False
Sheets("Database").Unprotect Password:="1234"
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Sheets("Database").Protect Password:="1234"
Application.CutCopyMode = False
Application.ScreenUpdating = False
MsgBox "Paste Finish"
Worksheets("PivotReport").PivotTables("PivotTable1"). _
    PivotCache.Refresh
End Sub

Re: VB สำหรับ paste data ลงใน database แต่ว่าชี้ต protect

Posted: Tue Feb 05, 2013 11:37 am
by godman
สุดยอดครับ ใช้ได้เลยแหละ