Jump to content
Fórum Script Brasil
  • 0

Problema com código de função VBA


Maria Monica Loiola

Question

Oi, pessoal. 

Eu tentei criar uma função VBA que atende a essas condições conforme o script, só que por algum motivo ela não funciona, e como estou trabalhando com uma base de dados longa, optar pelo VBA tem sido a melhor opção. 

Function crit(duration)
 If duration < 21 Then
 crit = "P1"
 ElseIf duration > 21 Then
 crit = "P1 OU P2"
 ElseIf duration > 42 Then
 crit = "P2 OU P3"
 ElseIf duration > 63 Then
 crit = "P3 OU P4"
 ElseIf duration > 126 Then
 crit = "P4 OU P5"
 ElseIf duration > 252 Then
 crit = "P5 OU P6"
 ElseIf duration > 504 Then
 crit = "P6 OU P7"
 ElseIf duration > 756 Then
 crit = "P7 OU P8"
 ElseIf duration > 1008 Then
 crit = "P8 OU P9"
 ElseIf duration > 1260 Then
 crit = "P9 OU P10"
 ElseIf duration < 2520 Then
 crit = "P10"
 Else
 crit = "--"
 End If
End Function

Quem conhecer uma opção melhor fique a vontade

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Bom dia @Maria Monica Loiola

tenta usar esse código abaixo:
 

Function crit(duration) As String
Dim resultado As String
    Select Case duration
        Case Is < 21
            resultado = "P1"
        Case Is <= 42
            resultado = "P1 OU P2"
        Case Is <= 63
            resultado = "P2 OU P3"
        Case Is <= 126
            resultado = "P3 OU P4"
        Case Is <= 252
            resultado = "P4 OU P5"
        Case Is <= 504
            crit = "P5 OU P6"
        Case Is <= 756
            resultado = "P6 OU P7"
        Case Is <= 1008
            resultado = "P7 OU P8"
        Case Is <= 1260
            resultado = "P8 OU P9"
        Case Is < 2520
            resultado = "P9 OU P10"
        Case Else
            resultado = "P10"
    End Select
    crit = Replace
End Function

 

Como você fitou que a base de dados é muito grande, ficar fazendo "formulas" para retornar valores vai fazer seu código ficar lento ainda.
O mais aconselhado é fazer um procedimento que percorrer sua base de dados e preencher der acordo com o que deseja. Funciona igual a uma formula porém vai fazer sozinho

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...