繁体   English   中英

VBA根据列中的单词锁定整个行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM