即使有所有论坛帖子,我也无法解决这个问题。 如果其中一列中出现“Locked”字样,我只需要锁定表格的整行(Table1)。
Sub Accounts_Row_Fixed()
'
' Accounts_Row_Fixed Macro
'
Dim rng As Range
Set rng = Sheet2.Range("Table1[Accounts Row Fixed]")
ActiveSheet.Unprotect "JP"
rng.Select
ActiveCell.FormulaR1C1 = "=IF([@Claim]=""Settled"",""Locked"","""")"
Dim cel As Range, drng As Range
Set drng = Range("Table1[Accounts Row Fixed]")
For Each cel In drng
If cel.Value = Settled Then
cel.EntireRow.Locked = True
End If
Next cel
Range("C6").Select
ActiveSheet.Protect "JP"
End Sub
代码的第一部分工作,在列中获取单词,但它的锁定部分没有发生。有任何想法吗?使线条改变颜色也是一个奖励!!
答案 0 :(得分:1)
将If cel.Value = Settled Then
更改为If cel.Value = "Settled" Then
如果您不包含"
,那么它将被视为变量。
提示:始终使用Option Explicit
。它会强制你声明变量,并可以消除这些错误。
答案 1 :(得分:0)
你确定你的循环正在退出吗?锁定行Exit For
后,我会添加此行。这样,一旦找到你想要的细胞,你就会跳出循环。
以下是如何更改整行的背景颜色cel.EntireRow.Interior.Color = vbRed
。