Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Sheet1.Unprotect Password:="123" If Target.Value <> "" Then Target.Locked = True Sheet1.Protect Password:="123" End If End Sub 這個代碼的作用是在輸入數(shù)據(jù)后,自動鎖定Excel工作表。這樣的話,我們就不能修改錄入的數(shù)據(jù)。只有點擊【審閱】找到【取消工作表保護】錄入正確的密碼才可以修改數(shù)據(jù)Sheet1.Unprotect Password:="123" Sheet1.Protect Password:="123" 我們想要使用只需修改上面的2行代碼即可。默認(rèn)密碼為【123】,大家可以根據(jù)自己需求來輸入密碼,密碼需要更改2次,Sheet1是用于指定鎖定那個工作表的,大家也需要根據(jù)自己的實際情況來修改下,這個Sheet1是VB編輯器中對應(yīng)的sheet名稱,在左側(cè)的窗口可以看到
Public Function pizhu(i As Range) Application.Volatile True pizhu = i.Cells.Comment.Text End Function 這個代碼的作用是自定義一個名稱為【pizhu】的函數(shù),我們需要再點擊鼠標(biāo)右鍵,插入【模塊】,將代碼粘貼到模塊中,它可以幫助我們快速的將批注中的數(shù)據(jù)提取出來需要注意的是,如果單元格沒有批注的話,函數(shù)就會返回#VALUE!這個錯誤值,所以我們還需要使用IFERROR函數(shù)來屏蔽一下錯誤值。Function SumColor(i As Range, ary1 As Range) Dim icell As Range Application.Volatile For Each icell In ary1 If icell.Interior.ColorIndex = i.Interior.ColorIndex Then SumColor = Application.Sum(icell) + SumColor End If Next icell End Function 這個代碼的作用是根據(jù)顏色求和,定義方法與提取批注是一模一樣的,函數(shù)的名字為SumColor語法:= SumColor(想要求和的顏色,求和的數(shù)據(jù)區(qū)域)第一參數(shù):直接在單元格中選取對應(yīng)的顏色即可。第二參數(shù):選擇需要求和的數(shù)據(jù)區(qū)即可
Function CountColor(x As Range, ary2 As Range) Application.Volatile For Each i In ary2 If i.Interior.ColorIndex = x.Interior.ColorIndex Then CountColor = CountColor + 1 End If Next End Function 它的用法跟SumColor一樣,作用是根據(jù)顏色來進行計數(shù)。語法:= CountColor(想要計數(shù)的顏色,計數(shù)的數(shù)據(jù)區(qū)域)第一參數(shù):直接在單元格中選取對應(yīng)的顏色即可。第二參數(shù):選擇需要計數(shù)的數(shù)據(jù)區(qū)即可以上就是今天分享的4組VBA代碼,都是一些工作中比較常見的例子,大家直接粘貼使用即可,有一點需要注意的是:如果你想要保存這些VBA代碼,就需要將文件的格式另存為【XLSM】,這個格式是可以保存宏代碼的。
|