У меня есть следующий код: он работает нормально, но я хочу улучшить его в последней части кода, если contador = 0, я хочу не mespt = "нет С.Е. considera" вместо того, чтобы просто возвращающие 0.VBA Excel - функция, которая возвращает либо число, либо строку
Public Function mespt(tutor As String, mes As String, j As Long) As Double
Application.Volatile
Dim a As Long
Dim totalmesp As Double
mespt = 0
contador = 0
totalmespt = 0
For i = 4 To 1000
If Sheets("Hoja1").Cells(i, 2).FormulaR1C1 = tutor And Sheets("Hoja1").Cells(i, 5).FormulaR1C1 = mes Then
Select Case Sheets("Hoja1").Cells(i, j).Value
Case "No cumple"
a = 0
contador = contador + 1
Case "Regular"
a = 1
contador = contador + 1
Case "Pleno"
a = 3
contador = contador + 1
Case "No se considera"
a = 0
End Select
totalmespt = totalmespt + a
If contador = 0 Then
mespt = 0
Else
mespt = totalmespt/contador
End If
End If
Next
End Function
I`ve использоваться вариант следующим образом:
Funcion mespt( ) as Variant
.......
if contador = 0 then
mespt="No se considera" then
mespt=totalmespt/contador
end if
end function
Но в случае Контадор = 0, то функция просто возвращает #! Valor
Извините, остроумие h тип варианта это рабочая область ОК, как я ожидаю сейчас, проблема была только с формулой в excel, которая работает с функцией mespt.
как о возврате как Varient. – JSJ
@jsj: Это действительный ответ. :) Возможно, вы захотите сказать это как ответ? –
Запомните мое сообщение о реализации моего кода с вашими рекомендациями, к сожалению, он не работает. – CreamStat