Você chama o primeiro procedimento passando um intervalo como argumento.
test(ThisWorkbook.Worksheet("Sheet1").Range("A1"))
Eu tenho o procedimento no Excel VBA, que é um parâmetro de intervalo necessário e também produzirá um intervalo de saída exatamente na célula ativa.
O código é assim:
Sub test(oSource as Range)
Dim oTarget As Range
Dim oCell As Range
Set oTarget = Range(ActiveCell, ActiveCell.Offset(0, 0))
For Each oCell In oSource
If oCell.Value <> "" Then
oTarget.Activate
oTarget.Offset(0, 0).Value = oCell.Text
oTarget.Offset(0, 1).Value = oCell.Text
Set oTarget = oTarget.Offset(1, 0)
End If
Next
End Sub
Como eu chamo isso? Eu já tentei usar uma função como essa
Function(SourceRange as Range)
Call test(SourceRange)
End Function
Mas não está funcionando porque test()
produzirá intervalo na célula ativa e substituirá a função, o excel fornecerá aviso de valor circular. Eu não consigo registrá-lo em macro, o botão de criação sempre desabilitado quando eu clico em jogar. Então, como eu chamo isso de Sub?
Você chama o primeiro procedimento passando um intervalo como argumento.
test(ThisWorkbook.Worksheet("Sheet1").Range("A1"))
Tags microsoft-excel macros vba