Board logo

標題: [發問] 新產出的工作表的部分儲存格只能限定修改一次 [打印本頁]

作者: 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


    類似這樣子的概念嗎?
  1. Sub test()
  2. Sheets.Add After:=Sheets("工作表1")
  3. ActiveSheet.Name = "PL"
  4. Sheets("PL").Protection.AllowEditRanges.Add Title:="範圍1", Range:=Range( _
  5.         "=$A$1:$B$65536,$C$1:$C$3,$C$10:$IV$65536")
  6. Sheets("PL").Protect "6"
  7. 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/)