Estou aprendendo a criar fórmulas em VBA pela internet, e me deparei com este artigo de Jon do campus excel onde ele estava ensinando a criar fórmulas para a variação percentual.
Eu, no entanto, não consegui entender uma parte do código, onde ele usou as aspas duplas e o sinal de e comercial ao criar a fórmula.
sFormula = "=SEERRO((" & sNovo & " - " & Vendido & ")/" & Vendido & ",0)"
Alguém pode me dizer por que o sinal de e comercial é usado entre sNew e sOld, e também por que não usar as vírgulas e o sinal de e comercial leva à falha do código?
A codificação completa é a seguinte-
Sub Percent_Change_Formula()
'Description: Creates a percentage change formula
'Source: https://www.excelcampus.com/vba/percentage-change-formulas-macro/
Dim rOld As Range
Dim rNew As Range
Dim sOld As String
Dim sNew As String
Dim sFormula As String
'End the macro on any input errors
'or if the user hits Cancel in the InputBox
On Error GoTo ErrExit
'Prompt the user to select the cells
Set rNew = Application.InputBox( _
"Select the cell that contains the NEW number", _
"Select New Cell", Type:=8)
Set rOld = Application.InputBox( _
"Select the cell that contains the OLD number", _
"Select Old Cell", Type:=8)
'Get the cell addresses for the formula - relative references
sNew = rNew.Address(False, False)
sOld = rOld.Address(False, False)
'Create the formula
sFormula = "=IFERROR((" & sNew & " - " & sOld & ")/" & sOld & ",0)"
'Create the formula in the activecell
ActiveCell.Formula = sFormula
ErrExit:
End Sub
No VBA, o operador comercial (&) é:
A fórmula é criada/construída dinamicamente e é por isso que o e comercial é usado para anexar/concatenar as diferentes partes.
Se você não usar o e comercial e escrever por exemplo:
Você recebe um erro, pois o compilador espera um final de instrução devido ao fato de haver espaços entre as diferentes strings e variáveis de string (sNew e sOld). O compilador não saberá o que fazer com todos eles na mesma linha.