我尝试从下拉列表中显示消息,我实际上有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
答案 0 :(得分:1)
您的代码比它应该更详细,并且您可以通过多种方式解决这些问题,例如:
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中遇到“程序太大”这都暗示你可能需要重新思考你是如何做事的。