Board logo

標題: [發問] 請問一下 如何讓今日之前 儲存格 不能修改 刪除 也不能插入列 謝謝 [打印本頁]

作者: mycmyc    時間: 2011-9-23 00:10     標題: 請問一下 如何讓今日之前 儲存格 不能修改 刪除 也不能插入列 謝謝

請問一下 如何讓今日之前 儲存格 不能修改 刪除  也不能插入列
請各位 前輩  提供一下方法

如 B1 填入數字後 在今日內多能修改  但過了今日就不能修改 與插入列
當然 如有權限 密碼 能修改

不知 能否達成

謝謝
作者: yangtest    時間: 2011-9-24 18:37

最基本的方法:先把今日輸入資料的儲存格取消保護,再把整個工作表設為保護。如果在同一個工作表中,只有少數幾個儲存格(今日才輸入資料)可以修改,那就複選不保護的儲存格、在Excel 工具列中點選「格式」、「儲存格」、「保護」,取消鎖定,再把整個工作表設為保護,那就只能在剛剛複選的儲存格輸入資料,其他的儲存格都受保護了,就不能修改、刪除、也不能插入列了!
記得日期變更後,就要重複上述的動作。雖然比較麻煩,在無函數或巨集可用時,就只有這個方法了。
作者: mycmyc    時間: 2011-9-24 23:25

感謝你
但那是不可能的任務
我想法是  一些表格 必須是 今天日期 才能填   
過了今天 就不能編修  防止  輸入人員  修改以前資料
謝謝你
作者: jimmyhk    時間: 2011-9-25 08:14

回復 1# mycmyc


應需要運用到 VBA 幫忙了
作者: 317    時間: 2011-9-25 09:11

這篇文應發問於程式區
作者: GBKEE    時間: 2011-9-25 10:52

本帖最後由 GBKEE 於 2011-9-25 10:53 編輯

回復 5# 317
請將程式碼複製到 :VBA視窗的ThisWorkbook中,存檔後重新開檔便可
  1. Private Sub Workbook_Open()
  2.     Dim 密碼 As String, Sh As Worksheet
  3.     密碼 = "1234"
  4.     Set Sh = ActiveSheet             '作用中的工作表
  5.     'Set Sh = Sheet1                 'VBA 物件名稱
  6.     'Set Sh = Sheets("麻辣家族討論") '活頁簿工作表名稱
  7.     'Set Sh = Sheets(2)              '活頁簿工作表的排序
  8.     With ThisWorkbook                'ThisWorkbook  -> VBA 的活頁簿物件
  9.         .Names.Add "日期", Date - 1, False     '活頁簿定義名稱, False->隱藏
  10.         '執行一次後請在前面加上註解 " ' " 或 刪除 停止此程式碼執行
  11.         
  12.         If Val(Replace(.Names("日期"), "=", "")) <> Date Then   '不是今日
  13.             .Names("日期").Value = Date                          '修改Value為今日
  14.             .Names.Add "MyRange", Sh.UsedRange ', False  '定義名稱"MyRange" 範圍指定為 ActiveSheet.UsedRange
  15.             '.Names.Add "MyRange", Sh.UsedRange , False     'False->定義名稱隱藏
  16.              With Sh                                        '指定的工作表
  17.                 .Unprotect 密碼                             '取消工作表保護
  18.                 .Cells.Locked = False                       '取消儲存格鎖定->工作表的Cells
  19.                 .Cells.FormulaHidden = False                '取消儲存格隱藏->工作表的Cells
  20.                 Range("MyRange").Locked = True              '儲存格鎖定-> "MyRange"的範圍
  21.                 Range("MyRange").FormulaHidden = True       '儲存格隱藏-> "MyRange"的範圍
  22.                 .Protect 密碼                               '工作表設定保護
  23.             End With
  24.         End If
  25.     End With
  26. End Sub
複製代碼

作者: mycmyc    時間: 2011-9-26 00:36

感謝 GBKEE
我明天試試
謝謝你
VBA 巨集 才聽說 會被攻擊 入侵
一直不敢用  是真的嗎
謝謝 大家指導
作者: GBKEE    時間: 2011-9-26 10:05

回復 7# mycmyc
VBA 巨集 才聽說 會被攻擊 入侵
不隨意下載不明檔案,一般是不會的.
作者: mycmyc    時間: 2011-9-26 23:56

GBKEE 謝謝你
我就是會  亂下載  
好像大家多是  怕公司資料走光
所以 很少用巨集
作者: mycmyc    時間: 2011-9-28 16:22

回復 8# GBKEE

VBA視窗的ThisWorkbook中
對不起 請問一下  應該怎麼開啟
作者: ANGELA    時間: 2011-9-28 16:26

alt+f11
作者: GBKEE    時間: 2011-9-28 17:12

回復 10# mycmyc
如圖


[attach]7961[/attach]
作者: mycmyc    時間: 2011-9-29 23:31

回復 12# GBKEE


    感謝你 指導 但我弄好巨集後
   必須執行巨集  才能鎖定   
   可以 輸入後鎖定嗎
你麻煩你看一下  附上檔案問題
謝謝你
作者: GBKEE    時間: 2011-9-30 10:26

回復 13# mycmyc
你的程式是放在SHEET1  開啟檔案是不會執行的
如圖 在點一下 ThisWorkbook  將程式碼 貼在這裡  檔案開啟時會自動執行的

[attach]8044[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)