Operador de adição coma seguinte sintaxe:
Resultado = expressão1 + expressão2
Se ambas as expressões forem valores numéricos, a soma aritmética será efetuada. Se um ou ambos os valores forem strings o VBA irá efetuar a concatenação das strings. Porém, se ambas as strings forem numéricas, o VBA poderá efetuar a soma e devolver para Resultado uma nova string numérica resultante. Para ter certeza de que strings são concatenadas, empregue o operador "&" de concatenação.
Se pelo menos uma das expressões não for uma Variant, as seguinte regras se aplicam:
- Se ambas as expressões forem dados numéricos de qualquer tipo (Byte, Boolean, Integer, Long, Single, Double, Date, Currency ou Decimal) ocorrerá a adição dos valores;
- Se ambas as expressões forem strings, ocorrerá a concatenação das strings;
- Se uma expressão for um tipo de dado numérico e a outra uma variável Variant diferente de Null, ocorrerá a adição das expressões;
- Se uma expressão for uma string e a outra uma variável Variant diferente de Null ocorrerá a concatenação das expressões;
- Se uma expressão for um tipo de dado numérico e a outra for uma string, ocorre erro Type mismatch (tipos não equivalentes);
- Se uma ou ambas as expressões forem variáveis Variant contendo o valor Null, o resultado será sempre Null (chama-se propagação do Null);
- Se ambas as expressões forem variáveis Variant contendo strings, ou forem variáveis String, ocorrerá a concatenação das expressões;
São válidas as seguintes exceções para esta regra:
- A adição de um valor Single, com um Long resulta em um Double;
- A adição de qualquer valor a uma variável Date (data válida) resulta sempre em outra variável Date.
Dim Resultado, Exp1, Exp2
Resultado = 2^2 ' Retorna 4
Resultado = 123.45 + 100 ' Retorna 223.45
Exp1 = "16": Exp2 = 8 ' Inicialização das variáveis
Resultado = Exp1 + Exp2 ' Retorna 24
Exp1 = "16": Exp2 = "8" ' Inicialização das variáveis
Resultado = Exp1 + Exp2 ' Retorna 168- concatenação das strings
Exp1 = 10: Exp2 = 20/01/2013 ' Inicialização das variáveis
Resultado = Exp1 + Exp2 ' Retorna 30/01/2013
Até a Próxima!!