Я пишу очень простой подпроцесс, чтобы присвоить класс букв цифровым значениям класса. У меня есть цикл, и я пытаюсь установить значение ячейки для вывода моей функции. Это кажется очень простой задачей, но первые две итерации моих циклов не присваивают никаких значений. Моя петля проходит только 4 строки.Итерация VBA, не возвращающая значение
Function get_letter(grade As Double)
Select Case grade
Case 0 To 59: letter = "F"
Case 60 To 69: letter = "D"
Case 70 To 79: letter = "C"
Case 80 To 89: letter = "B"
Case 90 To 100: letter = "A"
End Select
get_letter = letter
End Function
Sub assign_letter_grade()
Dim x As Integer
Dim grade As Range
Dim letter As Range
num_rows = Range("A2", Range("A2").End(xlDown)).Rows.Count
Set grade = Range("J2")
Set letter = Range("K2")
For x = 1 To num_rows
letter.Value = get_letter(grade.Value)
Set grade = grade.Offset(1, 0)
Set letter = letter.Offset(1, 0)
Next
End Sub
Почему это не задает значения моих первых двух строк в цикле?
Что происходит, когда вы кладете '= get_letter (J2)' в K2 и заполняете? Могут ли значения в столбце J быть текстовыми, маскирующимися как числа? – Jeeped
Значение J2 представляет собой расчет - = IF (SUM (C2: F2) /400*0.2*100+MAX (G2: H2) /100*0.8*100> 100, 100, SUM (C2: F2)/400 * 0.2 * 100 + MAX (G2: H2) /100*0.8*100) – Ptrkcon
Просто, чтобы быть уверенным, что я выбрал значение с помощью CDbl и все тот же результат – Ptrkcon