|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 wjdcpa 于 2024-10-5 14:43 编辑
Sub UnprotectOnlyWhiteCells()
Dim ws As Worksheet
Dim cell As Range
Dim protectPassword As String
Dim whiteColor As Long
' 设置保护密码,如果之前没有设置过,可以为空字符串
protectPassword = "" ' 你的保护密码,如果没有则留空
' 设置白色背景的RGB代码
whiteColor = RGB(255, 255, 255)
Set ws = ActiveSheet ' 操作当前活动的工作表
' 撤销工作表保护
ws.Unprotect Password:=protectPassword
' 先设置所有单元格为未锁定
ws.Cells.Locked = False
' 遍历工作表中的每个单元格
For Each cell In ws.UsedRange
' 如果单元格的背景颜色不是白色,则锁定该单元格
If cell.Interior.Color <> whiteColor Then
cell.Locked = True
End If
Next cell
' 重新保护工作表
ws.Protect Password:=protectPassword, userInterfaceOnly:=True, AllowFiltering:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingRows:=True
End Sub
上面代码中红色的那条不同通过,请教应如何修改,谢谢!
|
|