2011-08-05 127 views
-2

好吧,我正在創建一個電子表格,可以由另一個用戶編輯,但以其他方式鎖定。我希望做的是創建3個按鈕。 「如果」「退出如果」和「重置」Excel 2010宏與按鈕的樂趣

「如果」會允許用戶輸入數據。 「退出,如果」將允許用戶退出輸入模式並恢復爲默認值。文件。 然後「重置」將允許用戶停留在「假如」,但將所有值重置爲默認值。

然後我想按鈕「如果」某個地方出現了在左側,但是當你點擊它,它取代了「退出」和「復位」

+1

你有什麼代碼,使遠嗎?這不應該是一個非常艱鉅的任務,但它有助於從某個地方開始。 :) –

+2

@邁克爾:你的問題是什麼? –

回答

1

我建議你解釋多一點你的問題,但到目前爲止,我可以infere你有以下問題:

  • 有一個公式和數據鎖定的Excel工作表。
  • 提供編輯頁面,但不保存更改,作爲「諮詢」數據。

我可以主要提供以下內容:

  • 創建支持片在您爲您節省基頁
  • 解鎖片進行編輯。
  • 如果您退出編輯,則將數據從備份恢復到主工作表。
  • 如果您重置編輯,請執行與退出相同的過程並再次解鎖數據。 (於它是如何繪製的碼流,複製片已鎖定他的數據)

這將導致跟隨着代碼:

Sub BackUpData() 'this will be linked to you "what if" button 
    Sheets("Data_Sheet").Select 'select shhet with data, just in case 
    Range("A1:M56").Select ' range of your important data in your excel sheet 
    Cells.Select 
    Selection.Copy 
    Sheets("BackUp_Sheet").Select 
    Range("A1").Select  'lets paste the data in the same positión 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
    Sheets("Data_Sheet").Select 
End Sub 

這使數據和公式的一個副本,在不破壞數據源的情況下複製圖表是另一個問題,也許你可以在這個問題上進行闡述。有任何圖表?

Sub RestoreData() 'this will be linked to you "Reset" and "Exit" button 
    Sheets("BackUp_Sheet").Select 'select shhet with data, just in case 
    Range("A1:M56").Select ' range of your important data in your excel sheet 
    Cells.Select 
    Selection.Copy 
    Sheets("Data_Sheet").Select 
    Range("A1").Select  'lets paste the data in the same positión 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
End Sub 

通常的改進餘地:

  • Dinamicaly選擇的範圍內,但沒有選擇所有的片材,因爲存儲器isssuses可能出現。 (當我試圖在我的筆記本電腦中複製excel 2007的所有單元時,我用盡了資源:P)。
  • 刪除閃爍與Application.ScreenUpdating
  • 我沒有檢查這個工作是否在* backup_Sheet *是隱藏

其他isssuse是解鎖表中的數據。

Sub UnlockMySheet() 
     'password here won`t protect the business logic or the code from prying eyes, just the user from themselves 
     ActiveWorkbook.Unprotect 
     ActiveSheet.Unprotect 
     Range("D9,B13").Select ' select the editable cells 
     Selection.Locked = False 
     Selection.FormulaHidden = False 
     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 
     ActiveSheet.EnableSelection = xlUnlockedCells 
     ActiveWorkbook.Protect Structure:=True, Windows:=True 
End Sub 

平常的提升空間:

  • 也許我忘了保護協議,我真的就要離開,正是因爲它是頁面。 (對不起,沒有時間來驗證此代碼)。
  • 從stackoverflow集體思維的消化。

,那就是,現在