程序太大了

时间:2015-09-11 20:19:17

标签: vba excel-vba compiler-errors excel

我尝试从下拉列表中显示消息,我实际上有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 

1 个答案:

答案 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中遇到“程序太大”这都暗示你可能需要重新思考你是如何做事的。