选择基于完整行空白保护的单元格

时间:2014-02-12 21:05:54

标签: excel vba excel-vba

我需要在工作表中使用VBA保护一些数据,但保留一些单元格以便输入数据 - 标签名称“Part Order”

我的数据从A5开始,然后进入J

我有几个问题我正在努力解决 - 见下文

  1. 如果在单元格A的A列中找到数据,则锁定(A到F),然后锁定(H)然后从(K)到工作表末尾的所有单元格 这使得所有细胞在G5中向下解锁I5向下和J向下

  2. 如果在单元格A的A列中找不到数据,则锁定整行

  3. 如果有人可以提供帮助,我们将不胜感激。

    提前致谢

1 个答案:

答案 0 :(得分:0)

试试这个:

Sub LockCells()
Dim sLastColName As String
Dim lLastRow As Long
Dim i As Long

With Worksheets("Part Order")
    sLastColName = Mid(.Cells(1, .Columns.Count).Address, 2, _
                       InStr(2, .Cells(1, .Columns.Count).Address, "$") - 2)
    lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

    .Cells.Locked = False

    For i = 5 To lLastRow
        If .Cells(i, "A").Value <> vbNullString Then
            .Range("A" & i & ":F" & i & ",H" & i & ",K" & i & ":" & sLastColName & i).Locked = True
        Else
            .Rows(i).Locked = True
        End If
    Next i
End With
End Sub