首页 > 解决方案 > 我在 VBA 中的 For 循环没有按我的意愿工作

问题描述

我有一个工作表,我需要根据其他单元格内容解锁一些单元格。就像如果用户在 C3 单元格中写了一些东西,那么 D3,E3 的锁定属性变为 false。问题是 D3 和 E3 有下拉列表,所以数据验证不是一个选项。我写了一个基本的 VBA 代码:

Sub Cell_unlocklevel1()
Dim i As Integer

For i = 3 To 20
    If Not IsNull(Cells(i, 3)) Then
        Cells(i, 4).Locked = False
        Cells(i, 5).Locked = False
    Else
        Cells(i, 4).Locked = True
        Cells(i, 5).Locked = True
    End If
Next i

End Sub

运行代码后,它会解锁所有 D 和 E 单元格,无论 C 列是否包含文本。我怎样才能使这个代码工作?

标签: excelvbafor-loop

解决方案


推荐阅读