標題:
[發問]
新產出的工作表的部分儲存格只能限定修改一次
[打印本頁]
作者:
ccdder
時間:
2015-8-27 11:06
標題:
新產出的工作表的部分儲存格只能限定修改一次
在A工作表的各個儲存格填寫內容,之後按下"產出表單"按鈕,
然後VBA程式會COPY B工作表的格式,產出一個新的工作表
並且命名為A工作表某個儲存格的值。
以上是我已經完成的部分。
但接下來的部分我就沒辦法了~
我希望:這新產出的工作表(假設叫做PL工作表)產出後,
其D4 ~ D9 儲存格的值需限定不能被修改,其他儲存格則不限定。
由於PL工作表是從B工作表COPY來的,所以基本上D4 ~ D9 儲存格就已經被修改過一次了
(因為D4~D9的值會貼入A工作表的某些儲存格的值)
也就是說D4 ~ D9 儲存格是可以允許被修改一次的,但不能再修改,否則就跳出警語視窗。
這個問題困擾很久了,請求高手協助,拜託拜託。
作者:
owen06
時間:
2015-8-27 13:52
回復
1#
ccdder
類似這樣子的概念嗎?
Sub test()
Sheets.Add After:=Sheets("工作表1")
ActiveSheet.Name = "PL"
Sheets("PL").Protection.AllowEditRanges.Add Title:="範圍1", Range:=Range( _
"=$A$1:$B$65536,$C$1:$C$3,$C$10:$IV$65536")
Sheets("PL").Protect "6"
End Sub
複製代碼
作者:
starry1314
時間:
2015-8-27 22:27
回復
1#
ccdder
我目前的做法
1.新產出的表格為範本檔案,並檔案使用保護活頁簿鎖定
2.產出表格途中解密,產出完畢後再度加密
達到資料建立完成之後不得更改的效果
作者:
ccdder
時間:
2015-8-28 09:44
謝謝OWEN06 大大的回覆。
但這個VBA行不通耶,第4行會出現錯誤編輯錯誤(語法錯誤)。
看起來似乎是用"允許D4~D9以外"的儲存格可以修改 這樣的概念,
但 Sheets("PL").Protect "6",這個Protect "6" 是甚麼意思呢?
作者:
ccdder
時間:
2015-8-28 09:59
TO starry1314 大:
這個方式行不通喔。
這張excel表格是給很多人用的,不能叫使用者產出新表單後再做任何的動作。
因此,在按下"產出表單"按鈕之後,就要限制新產出工作表的D4~D9儲存格不能修改。
我曾經試過在尚未按下"產出表單"按鈕之前,就先將工作表B以保護活頁簿鎖定,
但那樣會造成新產出表單的D4~D9儲存格無法貼入工作表A的某些儲存格的值,
所以才需要讓D4~D9儲存格可以允許修改一次。
我想應該還是需要以VBA撰寫來解決。
但仍謝謝你的回覆。
作者:
ccdder
時間:
2015-8-28 09:59
請問還有人可以幫忙解決嗎?
作者:
owen06
時間:
2015-8-28 11:45
本帖最後由 owen06 於 2015-8-28 11:50 編輯
回復
4#
ccdder
【 但 Sheets("PL").Protect "6",這個Protect "6" 是甚麼意思呢? 】
就是在設定完允許編輯範圍後,再把PL這個工作表加密保護,密碼是:6
我自己試過那個程式是ok的,但那只是一個概念的寫法而已,跟你的程式要搭配的話一定要再修改,
但看不到你的程式碼,所以沒辦法幫你調整。
作者:
starry1314
時間:
2015-8-28 22:45
本帖最後由 starry1314 於 2015-8-28 22:47 編輯
TO starry1314 大:
這個方式行不通喔。
這張excel表格是給很多人用的,不能叫使用者產出新表單後再做任 ...
ccdder 發表於 2015-8-28 09:59
如果是說
但那樣會造成新產出表單的D4~D9儲存格無法貼入工作表A的某些儲存格的值,
是沒有按下按鈕後先自動解鎖吧
1.尚未按下"產出表單"按鈕,工作表B以保護活頁鎖定
2.按下"產出表單"按鈕後,1.先自動解鎖後並繼續執行 2.將工作表A資料的值貼完後 3.自動將工作表B活頁鎖定
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)