繁体   English   中英

当范围内的所有像元都等于相同值时更改像元的值

[英]Changing the value of a cell when all cells in a range equal the same value

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

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

使用Worksheet_Change事件对我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公式轻松完成此操作。 也许可以考虑选择?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM