我尝试显示一个来自下拉列表的消息,实际上我只有40个下拉列表,我只为28个下拉列表创建了一个消息,而对于最后12个下拉列表,我收到了一条错误消息(过程太大)
我在所有情况下都使用了此功能
If Target.Address(0, 0) = "K3" Then
Select Case Target
Case "EX1": Sheets("By Assessment method").Range("K2") = Sheets("SOMC-Legend").Range("B9")
Case "EX2": Sheets("By Assessment method").Range("K2") = Sheets("SOMC-Legend").Range("B10")
Case "EX3": Sheets("By Assessment method").Range("K2") = Sheets("SOMC-Legend").Range("B11")
Case "Educ": Sheets("By Assessment method").Range("K2") = Sheets("SOMC-Legend").Range("B7") End Select
End if
最佳答案
您的代码比应有的更加冗长,有多种解决方法,例如:
Dim rng as string
If Target.Address(False, False) = "K3" Then
Select Case Target
Case "EX1": rng= "B9"
Case "EX2": rng= "B10"
Case "EX3": rng= "B11"
Case "Educ": rng= "B7"
End Select
End If
If rng<>"" Then
Sheets("By Assessment method").Range("K2") = _
Sheets("SOMC-Legend").Range(rng).Value
End If
如果不查看更多现有方法,就很难提出可能更有用的方法。
每当您在VBA中遇到“过程过大”时,就暗示您可能需要重新考虑您的工作方式。
关于vba - 程序太大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32531514/