2

我正在尝试创建一个宏来更改单个单元格的值,仅当范围内的所有单元格都具有特定值时。我环顾四周,似乎我只能使用基于变体的工作表更改宏来做到这一点。基于此,我整理了以下内容:

Sub Worksheet_Change() 

Dim VarItemName As Variant
VarItemName = Range("Other_Checks!G85:G87")
Dim Value As String

Application.EnableEvents = False
If Range("Other_Checks!G85, Other_Checks!G86, Other_Checks!G87").Value = "N/A" Then
    Range("Other_Checks!G88").Value = "N/A"
Else
    Range("Other_Checks!G88").Value = "Pending"
    Application.EnableEvents = True
End If
End Sub

问题是它似乎只有在范围 (G85) 中的第一个单元格发生变化时才有效(不管其他 2 个单元格的值如何)。我究竟做错了什么?

4

1 回答 1

1

这适用于我使用该Worksheet_Change事件。

您需要替换您的范围引用。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim VarItemName As Range, cl As Range

    If Not Intersect(Target, Range("A1:C1")) Is Nothing Then
        If Range("A1") = "n/a" And Range("B1") = "n/a" And Range("C1") = "n/a" Then
            Range("A2") = "n/a"
        Else
            Range("A2") = "Pending"
        End If
    End If
End Sub

顺便说一句,这可以使用IF电子表格上的公式轻松完成。这可能是一个考虑的选择?

于 2013-02-27T19:42:19.993 回答