VBA基于列中的Word锁定整行

时间:2013-12-18 17:26:27

标签: excel vba locking

即使有所有论坛帖子,我也无法解决这个问题。 如果其中一列中出现“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

代码的第一部分工作,在列中获取单词,但它的锁定部分没有发生。有任何想法吗?使线条改变颜色也是一个奖励!!

2 个答案:

答案 0 :(得分:1)

If cel.Value = Settled Then更改为If cel.Value = "Settled" Then

如果您不包含",那么它将被视为变量。

提示:始终使用Option Explicit。它会强制你声明变量,并可以消除这些错误。

答案 1 :(得分:0)

你确定你的循环正在退出吗?锁定行Exit For后,我会添加此行。这样,一旦找到你想要的细胞,你就会跳出循环。

以下是如何更改整行的背景颜色cel.EntireRow.Interior.Color = vbRed