我正在尝试创建一个宏,仅当某个范围内的所有单元格都具有特定值时才更改单个单元格的值。 我环顾四周,似乎我只能使用基于变体的工作表更改宏来执行此操作。 基于此,我汇总了以下内容:
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个单元格的值如何),它似乎只能起作用。 我做错了什么?
答案 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
公式轻松完成此操作。这可能是一个考虑的选择吗?