1
resposta

fn_MontaCorpoEmail retorna apenas "Verdadeiro"

Meu auxRetorno está retornando "Verdadeiro". Vem apenas isso no corpo do e-mail.

Conseguem me ajudar?

Private Function fn_MontaCorpoEmail() As String

    'Declara as variáveis ContaLinhas e auxRetorno
    Dim ContaLinhas As Long
    Dim auxRetorno As String

    'ContaLinhas=6 porque é a primeira com resultado do filtro avançado
    ContaLinhas = 6
    auxRetorno = vbNullString

    'Loop
    Do While Trim$(Sheets("Reposição de estoque").Cells(ContaLinhas, 1)) <> vbNullString

        'Código:
        'Descrição do tênis
        'Acrescenta um espaço entre os dados
        'Tamanho do tênis
        'Pula linha
        auxRetorno = auxRetorno & Trim$(Sheets("Reposição de estoque").Cells(ContaLinhas, 1)) <> vbNullString
        auxRetorno = auxRetorno & " "
        auxRetorno = auxRetorno & Trim$(Sheets("Reposição de estoque").Cells(ContaLinhas, 2)) <> vbNullString
        auxRetorno = auxRetorno & vbCrLf

        'Incrementa o ContaLinhas
        ContaLinhas = ContaLinhas + 1

    Loop

    'Devolutiva da função
    fn_MontaCorpoEmail = auxRetorno

End Function

Imagem de código VBA onde o retorno da variável auxRetorno é apenas a palavra Verdadeiro ao contrário de vir como uma lista de tênis como o resultado obtido pelo professor durante a aula

1 resposta

Olá de novo Hyan,

O retorno "Verdadeiro" deve estar acontecendo pois você está concatenando auxRetorno + o resultado trimado de uma célula, mas comparando se ele é diferente (<>) de vbNullString. Como o resultado da célula é diferente de Null, o retorno da comparação é "Verdadeiro".

Aproveito pra sugerir uma boa prática pra deixar teu código mais simples e organizado, que é definir uma variável para o objeto planilha. Por exemplo, para não ter que chamar toda vez 'Sheets("Reposição de estoque").Cells......' você pode adicionar as linhas abaixo no começo do seu código:

Dim RepoEstoque as worksheet
Set RepoEstoque = ThisWorkbook.Sheets("Reposição de estoque")

E no seu código você pode chamar apenas:

RepoEstoque.cells(ContaLinhas,1)

Claro, RepoEstoque é só um nome de variável que eu escolhi, mas você pode nomear como preferir.

Espero ter ajudado :)