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 这个代码的作用是在输入数据后,自动锁定Excel工作表。这样的话,我们就不能修改录入的数据。只有点击【审阅】找到【取消工作表保护】录入正确的密码才可以修改数据Sheet1.Unprotect Password:="123" Sheet1.Protect Password:="123" 我们想要使用只需修改上面的2行代码即可。默认密码为【123】,大家可以根据自己需求来输入密码,密码需要更改2次,Sheet1是用于指定锁定那个工作表的,大家也需要根据自己的实际情况来修改下,这个Sheet1是VB编辑器中对应的sheet名称,在左侧的窗口可以看到
Public Function pizhu(i As Range) Application.Volatile True pizhu = i.Cells.Comment.Text End Function 这个代码的作用是自定义一个名称为【pizhu】的函数,我们需要再点击鼠标右键,插入【模块】,将代码粘贴到模块中,它可以帮助我们快速的将批注中的数据提取出来需要注意的是,如果单元格没有批注的话,函数就会返回#VALUE!这个错误值,所以我们还需要使用IFERROR函数来屏蔽一下错误值。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 这个代码的作用是根据颜色求和,定义方法与提取批注是一模一样的,函数的名字为SumColor语法:= SumColor(想要求和的颜色,求和的数据区域)
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一样,作用是根据颜色来进行计数。语法:= CountColor(想要计数的颜色,计数的数据区域)以上就是今天分享的4组VBA代码,都是一些工作中比较常见的例子,大家直接粘贴使用即可,有一点需要注意的是:如果你想要保存这些VBA代码,就需要将文件的格式另存为【XLSM】,这个格式是可以保存宏代码的。
|