Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA和案例,根据范围内的值分配值_Vba_Excel - Fatal编程技术网

VBA和案例,根据范围内的值分配值

VBA和案例,根据范围内的值分配值,vba,excel,Vba,Excel,我有学生的成绩和熟练程度 例如,对于五年级,有四个熟练程度等级。这四个级别的熟练程度与字母表中的字母相对应,因此如果一个五年级学生的字母作业是B,那么他的熟练程度将是“低于熟练程度”,因为a到R中的任何字母都会达到“低于熟练程度”,我想知道如何处理案例 我对代码的大致想法如下: Function ConvertScores(Grade, Letter_Score) Select Case ConvertScore(5, like "[A-R]") Case ConvertScore(5,

我有学生的成绩和熟练程度

例如,对于五年级,有四个熟练程度等级。这四个级别的熟练程度与字母表中的字母相对应,因此如果一个五年级学生的字母作业是B,那么他的熟练程度将是“低于熟练程度”,因为a到R中的任何字母都会达到“低于熟练程度”,我想知道如何处理案例

我对代码的大致想法如下:

Function ConvertScores(Grade, Letter_Score)
Select Case ConvertScore(5, like "[A-R]")
    Case ConvertScore(5, like" 
        ConvertScores = "F & P Remedial"
    Case 2
        ConvertScores = "F & P Below Proficient"
    Case 3
        ConvertScores = "F & P Proficient"
    Case 4
        ConvertScores = "F & P Advanced"



End Function
是的,我希望VBA有一个列表对象,VBA中的列表对象是什么

编辑:我可以用多个If语句来实现,但在我看来,cases是一种更好的方式

这是我的代码,我想用它来处理案例,而不是多个if-thens

Function ConvertScoresMOY(Grade, Letter_Score) As String
If Grade = "5" And Letter_Score Like "[A-R]" Then
    ConvertScoresMOY = "F & P Remedial"
ElseIf Grade = "5" And Letter_Score Like "[S-T]" Then
    ConvertScoresMOY = "F & P Below Proficient"
ElseIf Grade = "5" And Letter_Score Like "[U-V]" Then
    ConvertScoresMOY = "F & P Proficient"
ElseIf Grade = "5" And Letter_Score Like "[W-Z]" Then
    ConvertScoresMOY = "F & P Advanced"
Else:
End If
End Function

让我们从在一个简单条件中插入所有条件开始:

If Grade = "5" Then

End If
然后您可以使用开关盒:

 Select Case Letter_Score
       Case Letter_Score Like "[A-R]"
             ConvertScoresMOY = "F & P Remedial"
       Case val Letter_Score Like "[S-T]"
             ConvertScoresMOY = "F & P Below Proficient"
 End Select

您可以在另一个工作表中创建词典,然后使用VLOOKUP()函数搜索第一列上的值,并获取第二列上的值。

什么是
ConvertScore
,它没有声明?你对应该映射到什么的描述让我有点困惑。。。你能再解释一下吗?如果您的代码有缺陷,您应该花一分钟来更正此问题…请查看我的最新编辑。要回答您的子问题,您正在查找的列表对象称为脚本字典(启用“Microsoft脚本运行时”参考)。谢谢,但我“我不熟悉SWITCH,正在查看它的工作原理。你能举个例子吗?最好的答案!非常感谢!:)