首页 > 解决方案 > 根据列标题和行标题解锁单元格?

问题描述

我有一个看起来像这样的表(它动态变化)。 桌子

我正在尝试制作一个仅解锁“浅黄色”单元格的宏 = 第 1 行包含“预测”作为值,而列包含“实际”作为值。我稍后会保护工作表,以便用户只能在这些单元格中更改值。

在条件格式中,我使用这个公式: =(INDIRECT(ADDRESS(1;COLUMN();4))="Forecast")*(INDIRECT(ADDRESS(ROW();COLUMN($I$1);4))="Actual") 但我未能在 VBA 中进行类似的工作。

标签: excelvba

解决方案


以防万一有人想知道该怎么做。

Sub Lock_Cells()
Dim startCol As Long
startCol = WorksheetFunction.Match("Forecast", Range("1:1"), 0) 'Define in which column Forecast starts

Dim i As Long 
For i = 2 To Range("I" & Rows.Count).End(xlUp).Row
    If Cells(i, "I").Value = "Actual" Then 'Loop through values in column I
        Range(Cells(i, startCol), Cells(i, "U")).Locked = False 'Unlock cells
    End If
Next i
End Sub

推荐阅读