【发布时间】:2016-10-04 19:41:20
【问题描述】:
下面的代码根据哪些单元格包含“是”来增加一个变量。它一直有效,直到我使用自动填充将 F13:F59 中任何单元格的值设置为“是”。当我手动输入单词“是”时,不会发生运行时错误。但是自动填充似乎是导致问题的原因。
Select Case (changedcell)
'Issues Mgmt
Case Range("F15"), Range("F19"), Range("F23"), Range("F27"), Range("F30"), Range("F39"), Range("F42"), Range("F45"), Range("F50"), Range("F53"), Range("F54") 'Issues
If Range("F15").Value = "Yes" Then
issues = issues + 1
End If
If Range("F19").Value = "Yes" Then
issues = issues + 1
End If
If Range("F23").Value = "Yes" Then
issues = issues + 1
End If
If Range("F27").Value = "Yes" Then
issues = issues + 1
End If
If Range("F30").Value = "Yes" Then
issues = issues + 1
End If
If Range("F39").Value = "Yes" Then
issues = issues + 1
End If
If Range("F42").Value = "Yes" Then
issues = issues + 1
End If
If Range("F45").Value = "Yes" Then
issues = issues + 1
End If
If Range("F50").Value = "Yes" Then
issues = issues + 1
End If
If Range("F53").Value = "Yes" Then
issues = issues + 1
End If
If Range("F54").Value = "Yes" Then
issues = issues + 1
End If
If issues > 1 Then
Application.EnableEvents = False
MsgBox "Issues Management has already been selected under another old solution category.", vbCritical, "Duplicate Use Case Selected"
Range(target.Address).Value = ""
End If
End Select
代码的第一部分是发生错误的地方。有什么想法吗?
Case Range("F15"), Range("F19"), Range("F23"), Range("F27"), Range("F30"), Range("F39"), Range("F42"), Range("F45"), Range("F50"), Range("F53"), Range("F54") 'Issues
【问题讨论】:
-
这是
Worksheet_Change过程的一部分吗? -
嗯...我很少使用
Select Case,但我以前从未见过它是这样构造的..(changedcell)是什么?你的Case在哪里?写Select Case的意义不在于您不必编写一堆If Then Else声明吗? -
请检查单元格中自动填充的内容;错误link 的解释指向单元格中的错误内容。
-
是的,这与
Select Case的用途完全相反。我不能肯定地说,但我怀疑是 Case 语句本身引发了错误。它期待一个布尔表达式,并得到一系列范围。
标签: excel runtime-error autofill vba