[英]VBA to Lock Entire Row Based on a Word in a Column
即使有所有论坛帖子,我似乎也无法解决这一问题。 如果单词“ 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
代码的第一部分有效,将单词输入列中,但它的锁定部分没有发生。 有任何想法吗? 更改线条颜色也将是一个奖励!
将“ If cel.Value = Settled Then
If cel.Value = "Settled" Then
改为If cel.Value = "Settled" Then
如果不包含"
则它将被视为变量。
提示 :请始终使用Option Explicit
。 它将迫使您声明变量,并可以发现此类错误。
您确定循环正在退出吗? 在锁定行Exit For
之后,我会添加此行。 这样,一旦找到所需的单元格,您就可以跳出循环。
这是更改整个行的背景色cel.EntireRow.Interior.Color = vbRed
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.