【问题标题】:Check-box should not be marked/unmarked when the sheet is protected当工作表受到保护时,不应标记/取消标记复选框
【发布时间】:2020-02-05 06:00:33
【问题描述】:

我正在尝试制作一个在输入新数据时添加新复选框的宏,但只有在工作表不受保护时才应标记或取消标记。我尝试使用以下代码来做到这一点:

Range("Z4").Select
ActiveCell.FormulaR1C1 = "=LOOKUP(2,1/(C[-15]<>""""),ROW(C[-15]))"
i = Range("Z4").Value + 1

    Cells(i, 19).Select
    ActiveSheet.CheckBoxes.Add(Cells(i, 19).Left, Cells(i, 19).Top, 60.75, 15).Select
    With Selection
            .Value = xlOff
            .LinkedCell = Cells(i, 30)
            .Display3DShading = False
    End With
    Selection.Characters.Text = "Pagado"

链接的单元格被锁定,因此在锁定时不应更改。

否则,其余代码将完美运行。

【问题讨论】:

  • Ty,错误见谅
  • 那么到底是什么问题呢?旁注:您通常希望在代码中使用avoid using select
  • @cybernetic.nomad 问题是我要求在工作表受到保护时不标记或不标记复选框。但是,为了避免设置链接单元格的手动配置,我正在寻找一种方法,当代码添加一个新复选框时,它将它与位于同一行但第 30 列的单元格链接,但代码是现在不这样做

标签: excel vba checkbox


【解决方案1】:

所以我通过这样做想通了,比我想象的更容易。只需将两个字符串加在一起,然后保护工作表并锁定引用的单元格。

Cells(i, 19).Select
ActiveSheet.CheckBoxes.Add(Cells(i, 19).Left, Cells(i, 19).Top, 60.75, 15).Select
With Selection
        .Value = xlOff
        .LinkedCell = "$CC$" & i
        .Display3DShading = False
End With
Selection.Characters.Text = "Pagado"

希望它可以帮助别人。

【讨论】:

    猜你喜欢
    • 2020-10-07
    • 2014-12-25
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多