我很困惑'和'或'声明如何协同工作。 我正在尝试使(某事或某事)语句作为'and'语句的一部分工作,但无法找出逻辑 该问题由以下两个代码块说明。 第一个工作正常..第二个失败,运行时错误438:“对象不支持此属性或方法”。错误指的是“If j.Enabled ...”行。 在我看来,两者都应该运行..任何人都可以详细说明为什么不是这样吗?和/或VBA中的组合
代码块1(运行)
Private Sub Fini_cbn_Click()
Dim j As Control
For Each j In Controls
If j.Enabled = True And j.Tag = "4" Then
If j.Value = "<NA>" Or j.Value = "" Then
j.BackColor = &HFFFF&
Else
j.BackColor = &H80000005
End If
End If
Next j
End Sub
码块2(失败)
Private Sub Fini_cbn_Click()
Dim j As Control
For Each j In Controls
If j.Enabled = True And j.Tag = "4" And (j.Value = "<NA>" Or j.Value = "") Then
j.BackColor = &HFFFF&
Else
j.BackColor = &H80000005
End If
Next j
End Sub
这是什么应用程序?访问? – Degustaf 2015-03-13 13:56:42
我的第一个猜测是,每个控件都没有“值”属性,因此您正在循环的控件之一缺少它。尝试msgbox j.value,看看它是否出错,然后控制它出错。 – OpiesDad 2015-03-13 14:07:42
要添加到@OpiesDad:在第二个示例中,'j.Value'总是被评估,如果'.Value'在例如'j.Enabled = False'时不可用,将会出错。在你的第一个例子中,这个问题被绕过 - 因此这是正确的方法。 – 2015-03-13 14:10:27