【问题标题】:Excel macro to change a cell value and disable a column based on another cell valueExcel 宏更改单元格值并禁用基于另一个单元格值的列
【发布时间】:2014-04-16 10:07:42
【问题描述】:

如果单元格 1 的值为 A1,则单元格 2 的值应为 B1,并且应禁用 H 列。

如果单元格 1 的值为 A2,则单元格 2 的值应为 B2,并且不应禁用列 H。

这是代码,但不知何故它不适用于值“A1”。

Private Function func1(pVal as String) as String
If pVal = "A1"
func1="B1"
Worksheets("Sheet1").Range("H1:h100").Locked=True
ElseIF pVal="A2"
func1="B2"
EndIF
End func1

当用户在调用 1 中选择“A1”时,我在单元格 2 中收到错误 #value。

【问题讨论】:

  • 你能定义cell 1cell 2吗? func1 应该是 UDF 吗?

标签: vba excel


【解决方案1】:

工作表单元格中使用的函数只能返回一个值,不能锁定或解锁任何东西。没有 sub 的最佳做法是:

Public Function func1(pVal As String) As String
    func1 = "What Ever"
    If pVal = "A1" Then
        func1 = "B1"
    Else
        If pVal = "A2" Then
            func1 = "B2"
        End If
    End If
End Function

【讨论】:

    猜你喜欢
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多