当范围中的所有单元格等于相同值时,更改单元格的值

时间:2013-02-27 17:42:57

标签: excel-vba vba excel

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

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个单元格的值如何),它似乎只能起作用。 我做错了什么?

1 个答案:

答案 0 :(得分: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公式轻松完成此操作。这可能是一个考虑的选择吗?